行番号リストが指定されたファイルから連続していない行を印刷します。

行番号リストが指定されたファイルから連続していない行を印刷します。

いくつかの考えをした後、再び次の行番号のリストを取得しますgrepawkgrep

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

おすすめ記事