linux - 搜索特定单词并将其从 linux 文件中删除

标签 linux sed

我有一个包含以下文本的文件 (file1.txt):

mon
tue
tue_day
tuesday
wed

我想搜索单词“tue”并将其从此文件中删除。 我用过

sed -i "/tue/d" file1.txt

但它删除了所有包含 tue 单词的行,即第 2,3 和 4 行。我想删除唯一包含我想从文件中删除的完全相同文本的第 2 行。

你能推荐一下吗?

最佳答案

只需告诉 sed 您想要正好是“tue”的行。如何?前置和附加 ^$ 以指示行的开始和结束:

$ sed '/^tue$/d' file
mon
tue_day
tuesday
wed

要替换为变量中给定的内容,请像这样使用双引号:

var="tue"
sed -i "/^$var$/d" file

关于linux - 搜索特定单词并将其从 linux 文件中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39080581/

相关文章:

linux - 检查进程是否在 Linux 上运行的最佳实践?

linux - 当使用 5 个输入文件时,bash xargs 加上 bash Paste 可以输出正好 3 个文件吗?

python - python 终端中 perl 的导入错误

linux - Bash 脚本搜索和替换

shell - 打印 CSV 的前 N ​​行,其中引用的字段可以包含换行符

linux - bash 中的对话框没有正确获取变量

linux - 用 bash 脚本中的 sed 替换另一个文件中的字符串

linux - 如何安装相同 rpm 的两个不同版本并使它们并行工作

linux - 在所有文件中搜索和替换 URL

bash - 交换不同长度字符串中特定位置的字符