【问题标题】:Remove exact string from files in folder using grep使用 grep 从文件夹中的文件中删除确切的字符串
【发布时间】:2019-01-04 06:28:46
【问题描述】:

我有以下代码:

cd /home/pi/.attract/romlists; for file in *.tag ; do grep -v -F 'Arcade Snooker [AGA]' $file > $file1.tmp && mv -f $file1.tmp $file; done

这可以很好地从“Amiga.tag”等文件中删除固定字符串“Arcade Snooker [AGA]”。但是,它不会从“Atari 800.tag”或名称中包含“空格”的任何其他文件中删除该字符串。 “Atari 800.tag”的结果是以下错误:

grep: Atari: No such file or directory
grep: 800.tag: No such file or directory

我需要对代码进行哪些更改才能从“Atari 800.tag”和其他名称中包含空格的文件中删除“Arcade Snooker [AGA]”?

我宁愿只写一行代码,就像我现在拥有的那样。

谢谢。

【问题讨论】:

  • 我不知道你为什么不赞成我的问题。您提供的回复没有修复我的代码。我赞成的答案修复了代码,并按照我的要求在一行中完成了。

标签: linux grep


【解决方案1】:

如果文件名包含空格,则需要引用变量...

cd /home/pi/.attract/romlists; for file in *.tag ; do grep -v -F 'Arcade Snooker [AGA]' "$file" > "$file1.tmp" && mv -f "$file1.tmp" "$file"; done

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多