使用grep从文件夹中的文件中删除确切的字符串

时间:2019-01-03 22:24:08

标签: linux grep

我有以下代码:

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]”?

我希望现在只拥有一行代码。

谢谢。

1 个答案:

答案 0 :(得分:3)

如果文件名包含空格,则需要用引号引起来。

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