Bash脚本从.txt文件中删除特定行[重复]
Posted
技术标签:
【中文标题】Bash脚本从.txt文件中删除特定行[重复]【英文标题】:Bash-script delete a specific line from a .txt file [duplicate] 【发布时间】:2018-06-16 01:28:21 【问题描述】:我想学习如何从 txt 文件中删除包含用户在变量中键入的单词的行 我试过 grep -v 但随后清除了文件的全部内容 帮助?!!!
【问题讨论】:
sed --in-place '/some string here/d' yourfile
如果字符串在变量中?
见:Difference between single and double quotes in bash
请注意sed
接受regular expressions,因此如果您执行类似sed "/./d"
之类的操作,它不会只删除带点的行,而是删除所有内容(因为.
代表“任何字符”在正则表达式中)
【参考方案1】:
这是一个如何存档的示例程序:
将此保存在example.sh
:
#!/bin/bash
word="$1"
grep -F -v "$word"
将此保存在test.txt
:
Hello world
foo bar
baz bau
调用程序并在标准输入中输入 test.txt 文件:
chmod u+x example.sh # Need to do this only once per script (*.sh file)
./example.sh Hello < test.txt
输出(“Hello world”行被删除):
foo bar
baz bau
【讨论】:
我能问你点别的吗? 如果它与这个答案无关,最好问一个新问题(如果那里还没有) 这和你所说的sed中的正则表达式有关 继续! (旁注:您也可以在评论中使用@mention 通知用户) 我想用英文字母替换莫尔斯电码,例如'. -' 和 'a' 如何用 sed @akraf 做到这一点以上是关于Bash脚本从.txt文件中删除特定行[重复]的主要内容,如果未能解决你的问题,请参考以下文章
通过 Bash 从文本文件中删除空行,包括空格字符 [重复]