공백이 있는 단어를 하나의 단어로 처리

공백이 있는 단어를 하나의 단어로 처리

한 단어로 공백이 있고 두 번째 단어로 여러 공백이 있는 단어를 읽으려고 합니다. 찾을 수 있는 바로가기가 있습니까?

UNLIMITED TABLESPACE                     TRUSH
SELECT ANY DICTIONARY                    KENNYGO

예에 따르면 한 단어와 두 번째 단어 Unlimited Tablespace가 됩니다 . 한 단어와 두 번째 단어.TrushSelect any dictionaryKennygo

read이 작업을 수행하기 위해 다음 명령을 사용하려고 합니다 .

while IFS="  " read -r privilege name; do
    echo "$privilege" break "$name"
done < sysprivs.exp 

현재 결과 세트는 다음과 같습니다.

UNLIMITED break TABLESPACE                     TRUSH
SELECT break ANY DICTIONARY                    KENNYGO

어떤 제안이 있으십니까?

답변1

먼저 입력을 필터링하여 read반복하기 전에 여러 개의 공백을 줄바꿈으로 변환할 수 있습니다.

(<sysprivs.exp sed 's/\ \ \+/\n/g' | while read word; do echo "Word: \`$word'"; done)

산출:

Word: `UNLIMITED TABLESPACE'
Word: `TRUSH'
Word: `SELECT ANY DICTIONARY'
Word: `KENNYGO'

관련 정보