Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用grep从文件夹中的文件中删除精确字符串_Linux_Grep - Fatal编程技术网

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

我不知道你为什么否决了我的问题。您提供的响应无法修复我的代码。我投票的答案修复了代码,并按照我的要求在一行上完成了修复。