실험때문에 수많은 txt파일에서 통계자료를 뽑을려니 미치겠군요....
awk를 이용하여 txt 파일 안에서 특정charater로 시작하는 줄을 지울 수 있나요?
예를 들어,
a b c d 1 2 3 4
a b c d 4 3 2 1
에서 a로 시작하는 줄을 모두 지우고 싶습니다.
그리고 가능하면, 아무 내용도 없는 줄도 지우고 싶습니다.
어떻게 하면 될까요?
sed로 검색된 줄 지우는 건 여러 번 나왔으니 찾아보시고,
통계자료니까 줄의 순서가 중요한 건 아닐 테고 아마 헤더 부분이 중간중간 나오나보죠? sort -u나 sort | uniq 정도로 걸러내면 헤더와 자료가 구분될 테니 그걸 지우면 됩니다.
"a로 시작하지 않고 빈 줄이 아니면 출력"이니까 1:1로 번역하면 그냥 잘 됩니다. awk를 진지하게 배워보시는 걸 추천해 드립니다.
!/^a/ && !/^$/ { print }
텍스트 포맷에 대한 자세한 정보
<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]
sort나 uniq, sed를 이용해보세요.
sed로 검색된 줄 지우는 건 여러 번 나왔으니 찾아보시고,
통계자료니까 줄의 순서가 중요한 건 아닐 테고 아마 헤더 부분이 중간중간 나오나보죠?
sort -u나 sort | uniq 정도로 걸러내면 헤더와 자료가 구분될 테니 그걸 지우면 됩니다.
awk
"a로 시작하지 않고 빈 줄이 아니면 출력"이니까 1:1로 번역하면 그냥 잘 됩니다. awk를 진지하게 배워보시는 걸 추천해 드립니다.
댓글 달기