Awk 如何删除文件中“/”分隔符后的数字?

Awk 如何删除文件中“/”分隔符后的数字?,awk,sed,grep,cut,Awk,Sed,Grep,Cut,在下面的示例中,我只想删除第一个“/”后面的数字。i、 e.22766 使用以下sed方法: line="%ASA-4-106023: Deny udp src inside:10.252.0.175/22766 dst outside:192.5.5.241/53 by access-group" $ echo "$line" | sed -E 's/\/[0-9]+/\//' 输出: %ASA-4-106023: Deny udp src inside:10.252.0.175/ dst

在下面的示例中,我只想删除第一个“/”后面的数字。i、 e.22766

使用以下sed方法:

line="%ASA-4-106023: Deny udp src inside:10.252.0.175/22766 dst outside:192.5.5.241/53 by access-group"
$ echo "$line" | sed -E 's/\/[0-9]+/\//'
输出:

%ASA-4-106023: Deny udp src inside:10.252.0.175/ dst outside:192.5.5.241/53 by access-group
-E选项,允许扩展正则表达式与is-r选项相同

要获得更简单的解决方案,请使用以下方法:

sed  's~/[0-9]*~/~' testfile

~作为sed表达式中的分隔符

@Bhavik:try:考虑到您的输入文件应该与提供的文件相同

awk -F"/" '{sub(/[0-9]+/,"",$2);print}' OFS="/"   Input_file

将字段分隔符设置为/。因此,只有子替换函数内置的awk将更改输入文件第二个字段中的所有数字。

。谢谢@BhavikShah:很高兴它起作用了,在stack overflow中,如果有任何答案对你有帮助,你可以选择正确的答案,或者投票鼓励人们。享受学习和知识共享!!/意思是我在这里设置了字段分隔符,所以你们的意思是说你们的字段分隔符在输入文件中是不同的?我们可能需要根据更改调整代码。是的,只是想检查此处需要进行哪些调整?当然,如果您的输入文件更改并且没有/在其中,那么我们可能需要根据您的新字段分隔符调整它。你可以试着使用它。这些行是以换行符开头,还是以单个字符串作为任意文本?你能在格式化视图中把这些行放到你的问题中吗?E的使用不是完全可移植的;有些sed方言使用-r,有些则不支持。sed的%/[0-9][0-9]*%/%应适用于任何sed。显然,如果不想保留最后两个%分隔符之间的斜线,请删除它。@BhavikShah,您的意思是它看起来像内部:10.252.0.17522766?那么您的预期输出是什么?到目前为止你做了什么?
awk '{sub(/..... dst/," dst")}1' file 

%ASA-4-106023: Deny udp src inside:10.252.0.175/ dst outside:192.5.5.241/53 by access-group
%ASA-4-106023: Deny udp src inside:10.252.0.175/ dst outside:198.41.0.4/53 by access-group
%ASA-4-106023: Deny tcp src inside:10.252.0.220/ dst outside:10.60.11.83/636 by access-group
%ASA-4-106023: Deny tcp src inside:10.252.0.220/ dst outside:10.60.11.84/636 by access-group
%ASA-4-106023: Deny tcp src inside:10.252.0.252/ dst outside:10.60.11.83/636 by access-group
%ASA-4-106023: Deny tcp src inside:10.252.0.252/ dst outside:10.60.11.84/636 by access-group
%ASA-4-106023: Deny udp src inside:10.252.0.179/ dst outside:202.12.27.33/53 by access-group
%ASA-4-106023: Deny udp src inside:10.252.0.179/ dst outside:202.12.27.33/53 by access-group
%ASA-4-106023: Deny udp src inside:10.252.0.175/ dst outside:192.5.5.241/53 by access-group
%ASA-4-106023: Deny udp src inside:10.252.0.175/ dst outside:192.5.5.241/53 by access-group
%ASA-4-106023: Deny udp src inside:10.252.0.175/ dst outside:192.5.5.241/53 by access-group
awk '{sub(/..... dst/," dst")}1' file 

%ASA-4-106023: Deny udp src inside:10.252.0.175/ dst outside:192.5.5.241/53 by access-group
%ASA-4-106023: Deny udp src inside:10.252.0.175/ dst outside:198.41.0.4/53 by access-group
%ASA-4-106023: Deny tcp src inside:10.252.0.220/ dst outside:10.60.11.83/636 by access-group
%ASA-4-106023: Deny tcp src inside:10.252.0.220/ dst outside:10.60.11.84/636 by access-group
%ASA-4-106023: Deny tcp src inside:10.252.0.252/ dst outside:10.60.11.83/636 by access-group
%ASA-4-106023: Deny tcp src inside:10.252.0.252/ dst outside:10.60.11.84/636 by access-group
%ASA-4-106023: Deny udp src inside:10.252.0.179/ dst outside:202.12.27.33/53 by access-group
%ASA-4-106023: Deny udp src inside:10.252.0.179/ dst outside:202.12.27.33/53 by access-group
%ASA-4-106023: Deny udp src inside:10.252.0.175/ dst outside:192.5.5.241/53 by access-group
%ASA-4-106023: Deny udp src inside:10.252.0.175/ dst outside:192.5.5.241/53 by access-group
%ASA-4-106023: Deny udp src inside:10.252.0.175/ dst outside:192.5.5.241/53 by access-group