sed + 删除特定单词后的字符

sed + 删除特定单词后的字符

我想删除最后一个“。”除非 ”。”存在于“usa”一词之后

我的 sed 命令只删除了最后一个“。” ,

但是需要添加到 sed 语法(规则)中才能删除“。”仅在“美国”一词之后

 host 10.1.23.86 | awk '{print $NF}'
 sho4.il.usa.


 host 10.1.23.86 | awk '{print $NF}' | sed s'/.$//'
 sho4.il.usa

需要在 sed 中添加什么才能删除“.”仅在“美国”一词之后?

答案1

只需添加usa表达式即可。您还需要转义.以便仅匹配点本身而不是任何字符。

sed s'/usa\.$/usa/'

答案2

awk可以做大部分sed能做的事情,所以很少需要将它们通过管道连接在一起。

host 10.1.23.86 | awk '{sub(/usa\.$/, "usa", $NF); print $NF}'

相关内容