gpt4 book ai didi

linux - 在名称中带有空格的文件夹中进行 Grep

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:59 26 4
gpt4 key购买 nike

我正在尝试在具有 .cs 扩展名的根目录中的所有文件夹中对特定字符串进行 grep。但是,有些文件夹有空格,所以我的 grep 命令失败了。

搜索过其他帖子,但找不到确切答案。有没有更有效的方法来进行此搜索?

想知道如何通过文件夹或文件名中的这个空格进行转义。

find . -name \*.cs -print | xargs grep -win "Test String" > TesString.log

我的根目录下有空格的文件夹 -

D:\TestDrive\C Sharp\Batch\MyCode

grep 失败

grep: ./TestDrive/C: Is a directory
grep: Sharp/Batch/MyCode/Program.cs: No such file or directory

最佳答案

您可以使用递归 grep 而不是 find | xargs grep ..:

grep -winr 'Test String' --include=*.cs .

对于您的命令,您需要使用 -print0xargs -0 来使 find 输出以 nul 结尾的文件名:

find . -name '*.cs' -print0 | xargs -0 grep -win "Test String" > TesString.log

或者,您可以在 find 本身中使用 -exec 选项:

find . -name '*.cs' -exec grep -win "Test String" {} + > TesString.log

关于linux - 在名称中带有空格的文件夹中进行 Grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49818838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com