这是我的文件“test.txt”:
172.16.68.4
172.16.68.3
这是我的脚本:
#!/bin/sh
ip="172.16.68.4"
sed '/$ip/d' $1
请问,我想从测试文件中删除一行,但是没有用。有什么想法吗?
非常感谢您的帮助。
此致。
答案1
可能的解决方案:
#!/bin/sh
ip="172.16.68.4"
sed -i "/\b\($ip\)\b/d" $1
答案2
您唯一缺少的两件事是:
-i
命令中的标志sed
:-i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if SUFFIX supplied)
您正在使用变量,因此应使用双引号 (
"
) 以便扩展变量。
所以你的命令应该是:
sed -i "/$ip/d" $1
答案3
使用双引号让shell扩展变量,你可以看看这里:
https://stackoverflow.com/questions/5410757/delete-a-line-containing-a-specific-string-using-sed