2016-07-01 6 views
0

ファイルから行をgrepしてカンマ区切りの値で別のファイルに出力する必要があります。したがって、2番目の値が 'U'で始まり、最後の値が 'Success'の場合​​、この行はパターンに一致します。grepを使用した行内一致パターン

は、パターンに一致する必要があります

324,[email protected],[email protected],C1755,C1755,Kerberos,Network,LogOn,Success 

は一致しないはずです。

456,[email protected],[email protected],C625,C625,?,Network,LogOff,Success 
123,[email protected],[email protected]?,C2109,C2109,?,?,TGT,Fail 

ありがとうございました!最初のカンマのため

+0

何を試しましたか?あなたがしたくないので、これはプログラムを書くためのサービスではありません。 – Gene

+2

'^ [^、] +、U. * Success $' – Natecat

+1

@Natecat: '+'は 'grep -E'(別名' egrep')を必要とします。 –

答えて

1

柱状のマッチング要件が複雑になるにつれて、awkソリューションをより魅力的になっ:

awk -F, '$2 ~ /^U/ && $(NF) == "Success"' 

(。試合のデフォルトのアクションはラインを印刷することである)

ここではgrepを使用したソリューションでありますしかし:

grep '^[^,]*,U.*,Success$' 

そしてsed

sed '/^[^,]*,U.*,Success$/ p; d' 
1
grep '^[^,]*,U.*,Success$' 

見、U、最後のコンマ、Successと行の終わり。

関連する問題