0

単一の OS コマンドの出力に、特定の文字列で始まるログ ファイルの最後の行を表示しようとしています。

基本的に、次のログファイルがあります。

Tom 
Paul 
Tom 
Steve 
Anthony 
Tom

次のようなコマンドを入力します。

tail -1 /etc/logfile | grep Steve

次のような出力があります:スティーブ

残念ながら、 の出力にtail -1は、ログ ファイルの最後の行しか表示されません... 一致する場合。ログ ファイルを下から上 (最新のものから古いもの) に検索し、"Starts with" または grep に一致する最初のエントリを出力します。ありがとうございました。tail、sed、cat などのさまざまな組み合わせを試しましたが、何か小さな間違いを犯して見逃している可能性があります。

4

2 に答える 2

3

ログが小さすぎて全体をスキャンする必要がない場合は、

grep Steve etc/logfile | tail -n 1

あなたの仕事をします。ファイルが非常に大きい場合は、パフォーマンスに影響を与えるため、grep を使用したくないため、ファイルを逆方向​​に読み取り、最初の出現で停止するスクリプトを作成することをお勧めします。

于 2013-04-24T21:32:36.280 に答える
2

逆にやるだけgrep Steve /etc/logfile | tail -l

grep Steve /etc/logfile

次にスティーブとのすべての行を取得します

tail -1

それらの最後のものを出力します。

于 2013-04-24T21:17:55.263 に答える