sed 스크립트
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash exp="freeism-dn?dn=" folder="./result" for LINE in ls $folder do filename=basename $LINE linenumber=sed -n "/$exp/ =" $folder/$filename | tail -1 let "start = $linenumber - 6" let "end = $linenumber +3" sed -n "$start, $end p" $folder/$filename done |
sed에서 -n 옵션은 기본출력을 하지 않겠다는 의미(전체를 한번 출력함), = 옵션은 해당 라인번호, p 옵션은 일치하는 것만 출력하겠다는 의미이다. grep/sed/awk 다 비슷한 스크립트인데, 결국 파일내용을 1줄씩 input을 잡기때문에.. 여러줄(멀티라인)에 걸친 내용을 찾고 싶을 때는 제대로 동작을 안한다. 그래서 내가… 더 보기 »sed 스크립트