텍스트파일의 내용을 순차적으로 읽어들이는 방법
프로그래밍/BASH SHELL2016. 11. 29. 10:08
반응형
/test.txt 파일의 내용에
file1
file2
file3
file4
file5
가 있는 경우
#!/bin/bash for LIST in `cat /test.txt`; do echo $LIST done |
와 같은 스크립트를 돌리면
file1
file2
file3
file4
file5
와 같은 결과가 나온다.
[출처] http://www.ischo.net/
위 코드는 cat /test.txt 대신 echo "$temp" 와 같이 사용도 가능합니다.
대신 한줄씩 불러들이기 위해서 $temp 변수 앞뒤로 쌍따옴표 붙이는것을 잊으면 안됩니다.
그리고 이것은 한 줄에 공백이 있을 경우 맨 앞에 것만 불러오는 단점이 있습니다.
불러들이는 행에 여러 열이 있을 경우 아래와 같이 각 열에 변수 적용이 가능합니다.
while read cnt name trash do echo "${cnt} : ${name}" done < list.txt |
또는 공백이 불특정하게 많을 경우 아래와 같이 사용도 가능합니다.
while read item; do echo $item done < list.txt |
파일이 아닌 변수에서 한줄씩 라인을 읽어오고 싶을 경우 아래와 같이 파이프라인 (버티컬바)를 이용해 처리합니다.
echo "$list" | while read item; do echo $item done |
반응형
'프로그래밍 > BASH SHELL' 카테고리의 다른 글
쉘스크립트 글자 색상 변경 (0) | 2017.03.27 |
---|---|
쉘 스크립트 if 문 총정리 (우분투 참고용) (0) | 2017.02.10 |
변수 두개 붙여서 하나의 변수명으로 사용할 경우 (0) | 2016.11.29 |
스크립트 실행시 변수 뒤에 \013. 이 붙을 경우 (0) | 2016.10.04 |
[shellscript] 어제, 내일 날짜 구하기 (0) | 2015.01.27 |
댓글()