awk를 이용하여 특정 charater로 시작하는 줄을 지우기

choroot의 이미지

실험때문에 수많은 txt파일에서 통계자료를 뽑을려니 미치겠군요....

awk를 이용하여 txt 파일 안에서 특정charater로 시작하는 줄을 지울 수 있나요?

예를 들어,

a b c d
1 2 3 4

a b c d
4 3 2 1

에서 a로 시작하는 줄을 모두 지우고 싶습니다.

그리고 가능하면, 아무 내용도 없는 줄도 지우고 싶습니다.

어떻게 하면 될까요?

keizie의 이미지

sed로 검색된 줄 지우는 건 여러 번 나왔으니 찾아보시고,

통계자료니까 줄의 순서가 중요한 건 아닐 테고 아마 헤더 부분이 중간중간 나오나보죠?
sort -u나 sort | uniq 정도로 걸러내면 헤더와 자료가 구분될 테니 그걸 지우면 됩니다.

feanor의 이미지

"a로 시작하지 않고 빈 줄이 아니면 출력"이니까 1:1로 번역하면 그냥 잘 됩니다. awk를 진지하게 배워보시는 걸 추천해 드립니다.

!/^a/ && !/^$/ { print }