【发布时间】:2017-11-10 23:47:03
【问题描述】:
我正在处理一些文本文件,我必须删除一个特定的字符串
ex: "1234_NAME=TRUE", (including double quotes and comma)
如果我通过了使用 Vim 编辑器
:%s/"1234_NAME=TRUE",//g
但是这样我将手动进行。但我想通过使用一些脚本来自动化这项工作。
我尝试使用 sed 工具,但失败了。
sed 's/"1234_NAME=TRUE",//g' hello.txt
我不是脚本专家。我知道命令不正确。上述命令的解决方案是什么。
还有一个问题:
我们可以添加一个小循环,而不是手动传递文件名,它会一个一个地获取目录中的所有文本文件并删除字符串。
@codeforester 建议的答案需要一些修复:
for file in *.txt
do
[[ -f "$file" ]] || continue
分号是问题。
感谢@SlePort 的回答。
问候,
GBiradar
【问题讨论】:
-
sed 命令是正确的,只需使用
sed -i.bak -
是的,我添加了 -i 它有效。但是我必须一次处理一个文件,我尝试使用 @codeforester 提到的 for 循环,但它没有用。
-
知道了。我必须修复@codeforester 的答案。它奏效了。
-
我的回答有什么问题?请相应更新。
-
for ...; do是写for ...然后do在下一行的另一种方式。这不是问题。