sed删除行(模式匹配)在我的情况下不起作用

时间:2018-07-30 09:02:23

标签: linux shell sed

我需要从文件(/ home / test)中删除波纹管模式,我的脚本没有删除它。请让我知道如何通过模式匹配进行删除。

要删除的模式:

'user.err        @[10.209.10.73]'

文件:

root@mystique-node:~# cat /home/test
user.err        @@[10.209.10.71]
user.err        @@[10.209.10.72]
user.err        @[10.209.10.73]
root@mystique-node:~#

脚本:

root@mystique-node:~# cat /home/test1.sh
aa=`cat /home/test|grep "10.209.10.73"`
sed -i "/$aa/d" /home/test
root@mystique-node:~#

1 个答案:

答案 0 :(得分:1)

编辑: :要将ip用作参数,可以使用以下命令(仅针对给定样本进行测试)。

awk -v check="10.209.10.73" '$0 !~ check' Input_file

如果要将输出保存到Input_file本身,也可以在上面的命令中使用> temp_file && mv temp_file Input_file


尝试对.[]进行转义以删除其特殊含义。跟随sed可能会对您有所帮助。

sed '/\[10\.209\.10\.73\]/d' Input_file