[완료] Bash 스크립트에서 IFS로 파일 읽기 문제..
글쓴이: nomail / 작성시간: 목, 2014/09/11 - 12:21오후
안녕하세요.
Bash 스크립트를 어느정도 능숙하다고 생각하는데 할때 마다 문제에 부딪치네요ㅠㅠ
한줄짜리 텍스트 파일이 있고 하이픈(-)으로 값들이 분리되어 있습니다.
sever1-server2-server3-server4-server ...
Bash 스크립트에서 위 내용을 1개씩 읽을려고 아래처럼 작성했습니다.
while IFS=- read val; do echo $val done < file
IFS 내부변수에 하이픈 값을 셋팅하면 read로 읽을 때 분리하여 읽을거라 예상했는데
이상하게 한줄을 그대로 읽어버립니다.
구글링하여 IFS를 용도와 역할을 파악 해보면 분명 저렇게 쓰는게 맞는것 같은데 결과가 이상합니다ㅠㅠ
제가 잘못 알고 있는건지.. 도무지 모르겠습니다.
잘 하시는 분 도움 좀 부탁드립니다.
Forums:
음 ..
read 는 line 단위로 읽어들이고 변수는 하나이기 때문에, $val 에는 전체 한 줄만 들어가 있는게 맞습니다.
IFS 가 - 로 바뀌었기 때문에, 출력할 때에는 공백으로 보일 수는 있겠지만요..
라인 한 줄만 있다면, 그냥 변수에 넣고 loop 돌리는것도 괜찮겠네요.
read 로 텍스트를 필드별로 나눠서 읽는 방법은 아래 링크 참조하세요.
http://bash.cyberciti.biz/guide/$IFS
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
ymir님 매번 도움 주셔서 감사드립니다. 상세하게
ymir님 매번 도움 주셔서 감사드립니다.
상세하게 설명 해주셔서 금방 파악했구요.
예제를 보니까 이제 사용법을 정확히 알겠습니다.
제가 read 사용법과 개념을 그동안 잘못 알고 있었네요..ㅠㅠ
예제와 답변 참고하여 덕분에 깔끔하게 해결했습니다. 너무 고맙습니다^^
댓글 달기