![공백으로 구분된 입력 필드 읽기](https://linux55.com/image/65199/%EA%B3%B5%EB%B0%B1%EC%9C%BC%EB%A1%9C%20%EA%B5%AC%EB%B6%84%EB%90%9C%20%EC%9E%85%EB%A0%A5%20%ED%95%84%EB%93%9C%20%EC%9D%BD%EA%B8%B0.png)
다음과 같이 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 내장 명령을 사용하여 줄을 단어로 분할하는 데 사용되는 내부 필드 구분 기호입니다.