2017-03-17 13 views
0

最初のブラケットから番号を削除し、ブラケットの残りの部分をそのまま残したいと思います。以下のログの正規表現は何でしょうか?

Mar 17 00:03:13 %ASA-5-106100: access-list permitted tcp 10.252.0.165(50811) -> 172.19.26.33(4902) 
Mar 17 00:03:16 %ASA-5-106100: access-list permitted tcp 10.252.0.166(54563) -> 172.19.26.33(4902) 
Mar 17 00:03:28 %ASA-5-106100: access-list permitted tcp 10.252.0.222(38071) -> 172.19.26.33(4902) 
Mar 17 00:03:41 %ASA-5-106100: access-list permitted tcp 10.252.0.222(38074) -> 172.19.26.33(4902) 
Mar 17 00:03:45 %ASA-5-106100: access-list permitted tcp 10.252.0.221(17868) -> 172.19.26.33(4902) 
Mar 17 00:03:58 %ASA-5-106100: access-list permitted tcp 10.252.0.166(54572) -> 172.19.26.33(4902) 
Mar 17 00:03:58 %ASA-5-106100: access-list permitted tcp 10.252.0.166(54573) -> 172.19.26.33(4902) 
Mar 17 00:03:58 %ASA-5-106100: access-list permitted tcp 10.252.0.166(54574) -> 172.19.26.33(4902) 
Mar 17 00:04:14 %ASA-5-106100: access-list permitted tcp 10.252.0.165(50826) -> 172.19.26.33(4902) 
Mar 17 00:04:16 %ASA-5-106100: access-list permitted tcp 10.252.0.166(54580) -> 172.19.26.33(4902) 
Mar 17 00:04:28 %ASA-5-106100: access-list permitted tcp 10.252.0.222(38088) -> 172.19.26.33(4902) 
Mar 17 00:04:45 %ASA-5-106100: access-list permitted tcp 10.252.0.221(17881) -> 172.19.26.33(4902) 

私は(4902)をそのまま残しておきたいが、最初の括弧を数字でも取りたいと思う。

これは使いやすいですか?

awk '{sub('()'..... dst'()'," dst")}1' 
+0

@ RavinderSingh13これにはどのような提案がありますか? –

+0

私はちょうど私の答えを追加しました、それがあなたを助けるかどうか私に教えてください。 – RavinderSingh13

+0

一重引用符で区切られたスクリプト内では一重引用符を使用できません。これはどのUNIXツールにも当てはまり、エスケープ( '\ '')することさえできないという事実も含まれています。 –

答えて

4

あなたはsed使用することができます

sed 's/([0-9]*)//' logfile 
1

にはawkで自分の番号と同様を第1のブラケットを取り出し:

$ awk '{sub(/\([^)]*\)/,"")}1' foo 
Mar 17 00:03:13 %ASA-5-106100: access-list permitted tcp 10.252.0.165 -> 172.19.26.33(4902) 
Mar 17 00:03:16 %ASA-5-106100: access-list permitted tcp 10.252.0.166 -> 172.19.26.33(4902) 
1

@Bhavikを:試してみてください。

awk '{sub(/\([0-9]+\)/,"");print}' Input_file 

これは、(すべての桁の)最初の出現を削除します。次に、Input_fileから行を出力します。

関連する問題