0

v に以下のようなデータがar/log/messages.logあるので、WAM データ行を検索し、タイム スタンプの一部のみを抽出する必要があります。

例えば

2013-07-09T02:22:28.535639Z [24] user.info WebAppMgr WAM APPLAUNCH_INITIATED

上記の行には が含まれています。messages.log のデータWAMのみが必要です22:28.535639Z

2013-07-09T02:22:28.535639Z [24] user.info WebAppMgr WAM APPLAUNCH_INITIATED 
2013-07-09T02:22:21.817372Z [17] user.info sam SAM  ^Icom.palm.app.calculator
2013-07-09T02:22:21.818442Z [17] user.info sam SAM  ^Icom.palm.app.settings
2013-07-09T02:24:04.738067Z [120] user.info WebAppMgr WAM APPLAUNCH_INITIATED 
2013-07-09T02:22:21.846636Z [17] user.info sam SAM  ^Icom.palm.app.notes
2013-07-09T02:22:21.851727Z [17] user.info sam SAM  ^Icom.palm.app.firstuse
2013-07-09T02:22:21.854172Z [17] user.info sam SAM  ^Icom.palm.app.isis2
2013-07-09T02:22:21.863786Z [17] user.info sam SAM  ^Icom.palm.sysapp.voicedial
2013-07-09T02:24:04.746751Z [120] user.info WebAppMgr WAM APP CREATED WINDOW

を抽出でき2013-07-09T02:22:28.535639Zます。抽出方法を知りたい22:28.535639Z

#! /bin/sh
awk '/\ WAM/ {print $1"\t"}' /home/santosh/messages

次のような出力が得られます

2013-07-09T02:22:28.535639Z
2013-07-09T02:24:04.738067Z
2013-07-09T02:24:04.746751Z

しかし、私は以下のデータのみが必要です

22:28.535639Z
24:04.738067Z
24:04.746751Z
4

8 に答える 8

3

現在の awk 呼び出しでこれを行うことができます。

awk '/\<WAM\>/ {split($1, a, ":"); print a[2] ":" a[3]}' file

\<andは\>単語境界アサーションです。

于 2013-07-09T17:18:56.940 に答える
1

純粋なソリューション:

while read a x x x b x; do
  [ "$b" == WAM ] && echo ${a#*:}
done </var/log/messages.log

出力:

22:28.535639Z
24:04.738067Z
24:04.746751Z
于 2013-07-09T18:09:23.577 に答える
1
cat test.txt | cut -d " " -f 1 | cut -d "T" -f 2 | cut -d ":" -f 2-3

ファイルにデータを追加しました...「カット」コマンドでうまくいきます...

于 2013-07-09T18:08:04.657 に答える
1

使用regex:

パイソン:

import re
with open('/home/santosh/messages') as f:
    for line in f:
        m = re.search(r'^.*?:(\S+).*?WAM',line)
        if m: print m.group(1)

パール:

while ($line = <STDIN>){
    if ($line =~ m/^.*?:(\S+).*?WAM/){
        print "$1\n";
        }
}

出力:

$ perl so.pl < abc
22:28.535639Z
24:04.738067Z
24:04.746751Z
于 2013-07-09T17:21:17.320 に答える