공백으로 구분된 입력 필드 읽기

공백으로 구분된 입력 필드 읽기

다음과 같이 POSIX 입력을 어떻게 읽나요 bash?

<name>,<tag1> <tag2> <tag3>…

시도해 보았지만 while read line;do done줄 바꿈이 필요하고 내가 가진 것은 공백뿐입니다.

(예IFS해결책? 그렇다면 어떻게? (IFS를 완전히 이해하지 못합니다.)

답변1

배열을 사용하십시오:

echo '<name>,<tag1> <tag2> <tag3>' | while IFS=" ," read -a foo; do echo ${foo[@]}; done

산출:

<name> <tag1> <tag2> <tag3>

에서 man bash:

IFS: 확장 후 단어 분할 및 read 내장 명령을 사용하여 줄을 단어로 분할하는 데 사용되는 내부 필드 구분 기호입니다.

관련 정보