awk를 이용해 처음시작하는 단어가 포함되어있는 라인부터 특정단어 전까지 출력하고 싶은데, 어렵네요 예를들어 aaa bbb ccc ddd eee 파일을 bbb ccc ddd 파일로 출력하는 방법이 없을까요,, sed나 grep, 등 으로 라인번호로 출력하는법이아니라 단어입니다
awk, sed 모두 줄번호 대신 정규식으로 범위를 지정할 수 있습니다.
만약 'bbb'가 포함된 라인에서 시작하여 'eee'가 나오기 전 라인까지 출력한다면 아래와 같이 하면 되겠네요.
제가 문제를 잘못 알아들은 것이라면 조금 변형하시면 될겁니다.
$ cat sample.txt aaa bbb ccc ddd eee $ cat sample.txt | awk '/bbb/ {found=1} /eee/ {exit 0} found {print}' bbb ccc ddd $ cat sample.txt | awk '/eee/ {exit 0}; /bbb/,/eee/ {print}' bbb ccc ddd $ cat sample.txt | sed -ne '/eee/q; /bbb/,/eee/p' bbb ccc ddd
cat sample.txt | awk '/bbb/ {found=1} /eee/ {exit 0} found {print}'
exit 0 대신 found=0 으로 ^^
------------------------------------------------------------ ProgrammingHolic
그렇네요.. 알려주신 내용 포함하여, 종료처리 대신 마지막줄만 생략하도록 수정한 버전들입니다.
$ cat sample.txt sample.txt | awk '/bbb/ {found=1} /eee/ {found=0} found {print}' bbb ccc ddd bbb ccc ddd $ cat sample.txt sample.txt | awk '/bbb/,/eee/ { if(!/eee/) print }' bbb ccc ddd bbb ccc ddd $ cat sample.txt sample.txt | sed -n -e '/bbb/,/eee/ {/eee/b;p}' bbb ccc ddd bbb ccc ddd
모두모두 너무감사합니다! 열심히 더 해볼게요 너무 도움이됬어요
텍스트 포맷에 대한 자세한 정보
<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]
awk, sed 모두 줄번호 대신 정규식으로 범위를
awk, sed 모두 줄번호 대신 정규식으로 범위를 지정할 수 있습니다.
만약 'bbb'가 포함된 라인에서 시작하여
'eee'가 나오기 전 라인까지 출력한다면 아래와 같이 하면 되겠네요.
제가 문제를 잘못 알아들은 것이라면 조금 변형하시면 될겁니다.
두번 발생하면 출력안되겠네요
exit 0 대신 found=0 으로 ^^
------------------------------------------------------------
ProgrammingHolic
그렇네요.. 알려주신 내용 포함하여,
그렇네요.. 알려주신 내용 포함하여,
종료처리 대신 마지막줄만 생략하도록 수정한 버전들입니다.
감사합니다
모두모두 너무감사합니다! 열심히 더 해볼게요 너무 도움이됬어요
댓글 달기