我有以下代码:
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]”?
我希望现在只拥有一行代码。
谢谢。
答案 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