쉘 스크립트를 이용하여 파일의 내용들을 한줄 한줄 차례대로 뽑아내야 하는데 어떻게 해야 할지 감이 안잡히네요. 파일에서 첫번째 줄, 두번째 줄, 세번째 줄 이런식으로 차례차례 내용의 빼내야 하는데 어떻게 해야하는지 조언 부탁드립니다.
for를 이용할 경우
for line in $(cat 파일명) do echo $line ... 어쩌구 저쩌구 done
while을 이용할 경우
while read line do echo $line ... 어쩌구 저쩌구 done < 파일명
두가지 모두 각각의 한줄 한줄은 line 변수에 들어갑니다.
제가 사용하는 무식한 방법입니다.
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. 위에 글쓰신분 두번째 방법으로 하니 한라인씩 읽어오네요. 한수 배웠습니다. :)
추출할꺼라는 말씀이 마음에 걸려서..... :roll:
어떤 파일의 각 행을 전부 다른 파일로 만들어서 저장하고 싶다면..
엥..
설마 그걸 바란걸 아니시겠지만..
$awk '{print $0 > NR}' filename
하셔도 됩니다.
행번호로 파일을 생성합니다.
천라인이면 파일 1000개......
FOREVER_Ch@oS
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
bash에서 for 나 while을 사용하세요.
for를 이용할 경우
while을 이용할 경우
두가지 모두 각각의 한줄 한줄은 line 변수에 들어갑니다.
위같이 하면 공백이 잘릴껄요.
제가 사용하는 무식한 방법입니다.
더 낳은 방법도 있을것 같은데 모르겠더군요.
더 괜찮은 방법을 알고 계신분은 답변 달아주세요.
ps. 위에 글쓰신분 두번째 방법으로 하니 한라인씩 읽어오네요.
한수 배웠습니다. :)
awk를 쓰면
추출할꺼라는 말씀이 마음에 걸려서..... :roll:
어떤 파일의 각 행을 전부 다른 파일로 만들어서 저장하고 싶다면..
엥..
설마 그걸 바란걸 아니시겠지만..
$awk '{print $0 > NR}' filename
하셔도 됩니다.
행번호로 파일을 생성합니다.
천라인이면 파일 1000개......
FOREVER_Ch@oS
댓글 달기