텍스트파일의 내용을 순차적으로 읽어들이는 방법

프로그래밍/BASH SHELL|2016. 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

 

반응형

댓글()