줄 번호 목록이 제공된 파일에서 연속되지 않은 줄을 인쇄합니다.

줄 번호 목록이 제공된 파일에서 연속되지 않은 줄을 인쇄합니다.

몇 가지 생각을 한 후에 다시 다음과 같은 줄 번호 목록을 얻습니다 grep.awkgrep

20
55
98
154
1100
...

내가 사용하는 명령은 다음과 같습니다.

grep '01/01' /var/log/some.log | grep 'some' | awk '{print $10}' | grep -vn 200 | awk -F ':' '{print $1}'

이제 이 명령을 계속해서 파이프하여 이 파일에서 다음 줄을 인쇄하고 싶습니다. 어떤 아이디어가 있나요?

awk '{print $10}'간단히 삭제할 수 있다는 것을 알고 있지만 awk -F ':' '{print $1}'어떤 이유에서인지 삭제하면 결과가 나오지 않습니다. 반면에 위에 게시된 명령을 사용하려고 하면 숫자 목록이 표시됩니다.

답변1

해결책:

| xargs -I{} sed '{}q;d' /var/log/some.log

바라보다파일에서 n번째 줄을 얻는 방법

논평:

sedawk좀 더 자세한 명령 이나 명령을 작성하여 perl긴 파이프 목록(위의 마지막 단계 포함)을 줄일 수 있습니다.

perl -lane 'print $F[9] if /01\/01/ and /some/ and $F[9]!~/200/' /var/log/some.log

관련 정보