2017-03-17 50 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:

$ 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中打印出該行。