Linux 使用grep从文件夹中的文件中删除精确字符串
我有以下代码:Linux 使用grep从文件夹中的文件中删除精确字符串,linux,grep,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”或名称中包含“space”的任何其他
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”或名称中包含“space”的任何其他文件中删除字符串。“Atari 800.tag”的结果是以下错误:
grep: Atari: No such file or directory
grep: 800.tag: No such file or directory
我需要对代码进行哪些更改才能将“Arcade Snooker[AGA]”从“Atari 800.tag”和其他名称中包含空格的文件中删除
我希望只有一行代码,因为我现在有它
谢谢。如果文件名包含空格,则需要引用变量
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
我不知道你为什么否决了我的问题。您提供的响应无法修复我的代码。我投票的答案修复了代码,并按照我的要求在一行上完成了修复。