Apache ログファイルを解析しようとしています。基本的に、ログファイルで 11:00 を grep し、その時点で発生したすべての行の最後の 6 桁を出力します。
私は途方に暮れています。誰か助けてくれませんか?
このようなものがそれを作ることができます:
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