いくつかの考えをした後、再び次の行番号のリストを取得しますgrep
。awk
grep
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行目を取得する方法
コメント:
sed
awk
より詳細なコマンドまたはコマンドを作成して、長いパイプリストperl
(上記の最後のステップを含む)を減らすことができます。
perl -lane 'print $F[9] if /01\/01/ and /some/ and $F[9]!~/200/' /var/log/some.log