grep可以删除上下文,但不能删除整行吗



我通过以下命令从配置文件中删除密钥:

cat showrunningconfig.txt | grep -v '[ trnvf]*[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]'

这将删除整行。但我只想删除相关的模式。grep有-o选项,它只显示相关的模式,而不显示整行。但是-o选项不能与-v 结合使用

知道吗?非常感谢!

当您要从字符串中移除部分模式时,应该使用sed

sed -i 's/[[:space:]]*[[:xdigit:]]{8}//g' showrunningconfig.txt

查看在线演示

s="Text A1f4E3D4 and more text"
sed 's/[[:space:]]*[[:xdigit:]]{8}//g' <<< "$s"
# => Text and more text

详细信息

  • -i-就地替换(GNUsed选项(
  • s/[[:space:]]*[[:xdigit:]]{8}//g
    • s-替代命令
    • [[:space:]]*-0+空白
    • [[:xdigit:]]{8}——八个A-Fa-f0-9字符

最新更新