string - 如何从文件中删除包含特定字符串的行?

标签 string bash sed

我有一个 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

最佳答案

例如你可以这样做:

$ 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

注意几点:

  • sed 中需要双引号来扩展变量。否则,它将查找固定字符串“$title”。
  • 使用 -i 进行就地替换,以便在执行 sed 后更新文件。
  • d 是指示 sed 您要删除此类匹配行的方式。

关于string - 如何从文件中删除包含特定字符串的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24595025/

相关文章:

linux - 使用 ns2 的 TCL 中的参数

regex - 删除/替换 bash 中的 html 标签

javascript - 在 JavaScript 中打印一个大整数?

java - 如何动态追加字符串?

c++ - 未知类型名称字符串 C++

linux - 将字段转换为时间戳并插入 CSV

bash - 如何递增字符串中的最后一个数字;狂欢

string - 从标准输入读取时,Nil指针取消引用行为

bash - 如何确保我的 bash 脚本尚未运行?

linux - 如何在 .profile 或 .bash_profile 中设置 PATH in ubuntu