![공백이 있는 단어를 하나의 단어로 처리](https://linux55.com/image/78213/%EA%B3%B5%EB%B0%B1%EC%9D%B4%20%EC%9E%88%EB%8A%94%20%EB%8B%A8%EC%96%B4%EB%A5%BC%20%ED%95%98%EB%82%98%EC%9D%98%20%EB%8B%A8%EC%96%B4%EB%A1%9C%20%EC%B2%98%EB%A6%AC.png)
한 단어로 공백이 있고 두 번째 단어로 여러 공백이 있는 단어를 읽으려고 합니다. 찾을 수 있는 바로가기가 있습니까?
UNLIMITED TABLESPACE TRUSH
SELECT ANY DICTIONARY KENNYGO
예에 따르면 한 단어와 두 번째 단어 Unlimited Tablespace
가 됩니다 . 한 단어와 두 번째 단어.Trush
Select any dictionary
Kennygo
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'