我想删除第一个括号中的数字,并保持所有其余的括号完好无损。
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'发布于 2017-03-17 18:51:30
您可以使用sed
sed 's/([0-9]*)//' logfile发布于 2017-03-17 18:54:43
在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) 发布于 2017-03-17 18:58:46
@Bhavik:试试:
awk '{sub(/\([0-9]+\)/,"");print}' Input_file它删除(所有数字,然后)的第一个匹配项。然后,它打印Input_file中的代码行。
https://stackoverflow.com/questions/42855478
复制相似问题