-1

Apache ログファイルを解析しようとしています。基本的に、ログファイルで 11:00 を grep し、その時点で発生したすべての行の最後の 6 桁を出力します。

私は途方に暮れています。誰か助けてくれませんか?

4

1 に答える 1

1

このようなものがそれを作ることができます:

awk '/11:00/ {print substr($0,length($0) - 6)}' file

説明

  • /11:00/ {}を含む行に一致11:00し、アクションを実行し{}ます。
  • print substr($0,length($0) - 6)これらの行の最後の 6 文字を出力します。「文字列の長さ - 6」から開始すると、その時点から最後まですべてが出力されます。

テスト

$ cat a
hello bye bye
11:00 hello bye bye basd
11:23 hello this is
another line
11:00 with some text
$ awk '/11:00/ {print substr($0,length($0) - 6)}' a
ye basd
me text

アップデート

あなたのコメントに基づいて:

ねえ、私は今チェックしたところ、うまくいきました!私の間違いを除いて..これはログで必要な最後のフィールドであり、実際には長さが異なります. –</p>

以下を試してみましょう。

awk '/11:00/ {print $NF}' file

説明

  • /11:00/ {}を含む行に一致11:00し、アクションを実行し{}ます。
  • print $NF最後のフィールドを出力します。

テスト

$ cat a
hello bye bye
11:00 hello bye bye basd
11:23 hello this is
another line
11:00 with some text
$ awk '/11:00/ {print $NF}' a
basd
text
于 2013-10-01T12:24:06.870 に答える