我有一个文件BookDB.txt,它以下列方式存储信息:
C++ for dummies:Jared:10.67:4:5
Java for dummies:David:10.45:3:6
PHP for dummies:Sarah:10.47:2:7
假设在运行时,scipt会询问用户要删除的标题。然后将其存储在TITLE变量中。然后如何删除包含相关字符串的行?我尝试了以下命令,但无济于事:
sed '/$TITLE/' BookDB.txt >> /dev/null
答案 0 :(得分:7)
你可以这样做:
$ title="C++ for dummies"
$ sed -i "/$title/d" a
$ cat a
**Java for dummies**:David:10.45:3:6
**PHP for dummies**:Sarah:10.47:2:7
注意事项:
-i
进行就地替换,以便在sed执行后更新文件。d
表示您要删除此匹配行的sed
。答案 1 :(得分:1)
你的命令应该是,
sed "/$TITLE/d" file
要保存更改,您需要添加-i
内联编辑参数。
sed -i "/$TITLE/d" file
对于sed中的变量扩展,您需要将代码放在双引号内。