다시한번 쉘 스크립트에 대한 질문 올립니다.

noppix의 이미지

쉘 스크립트를 이용하여 파일의 내용들을
한줄 한줄 차례대로 뽑아내야 하는데 어떻게 해야 할지 감이 안잡히네요.
파일에서 첫번째 줄, 두번째 줄, 세번째 줄 이런식으로
차례차례 내용의 빼내야 하는데 어떻게 해야하는지 조언 부탁드립니다.

alfalf의 이미지

for를 이용할 경우

for line in $(cat 파일명)
do
echo $line
... 어쩌구 저쩌구
done

while을 이용할 경우

while read line
do
echo $line
... 어쩌구 저쩌구
done < 파일명

두가지 모두 각각의 한줄 한줄은 line 변수에 들어갑니다.

anfl의 이미지

제가 사용하는 무식한 방법입니다.


NUM=0

while [ `echo ${LINE} | awk '{ print $1 }'` != "" ];
do
     LINE=`cat -n ./hmm4/hmmdefs | grep ^[[:space:]]*${NUM}[[:space:]] | sed s/^[[:space:]]*[[:digit:]]*//g`
     echo ${LINE}
     let "NUM += 1"
done

더 낳은 방법도 있을것 같은데 모르겠더군요.
더 괜찮은 방법을 알고 계신분은 답변 달아주세요.

ps. 위에 글쓰신분 두번째 방법으로 하니 한라인씩 읽어오네요.
한수 배웠습니다. :)


chaos4chaos의 이미지

추출할꺼라는 말씀이 마음에 걸려서..... :roll:

어떤 파일의 각 행을 전부 다른 파일로 만들어서 저장하고 싶다면..

엥..

설마 그걸 바란걸 아니시겠지만..

$awk '{print $0 > NR}' filename

하셔도 됩니다.

행번호로 파일을 생성합니다.

천라인이면 파일 1000개......

FOREVER_Ch@oS