我有一个名为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
假设在运行时,脚本要求用户输入他想要删除的标题。这个标题被存储在变量 TITLE 中。那么如何删除包含该字符串的行呢?我尝试了以下命令但没有成功:
sed '/$TITLE/' BookDB.txt >> /dev/null
$ 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
删除匹配行的方式。-i
,还需要添加双引号,否则它将无法工作。 - Avinash Raj你的命令应该是:
sed "/$TITLE/d" file
为保存更改,您需要添加-i
内联编辑参数。
sed -i "/$TITLE/d" file
在sed中进行变量扩展,需要将代码放在双引号内。
grep -v "$TITLE" BookDB.txt
? - Cyrus