gpt4 book ai didi

file - Mac打开grep文件列表

转载 作者:行者123 更新时间:2023-12-04 04:58:20 25 4
gpt4 key购买 nike

我想在文件中搜索一个字符串并将生成的文件列表通过管道传输到 OSX 的“打开”命令,从而打开所有包含所述字符串的文件,以便在它们的默认编辑器(又名不是 vim)中进行编辑。

例如,运行:

find . -name "*.txt" | xargs grep -l "RANDOMSTRING"

可能会返回:
./folder1/file1.txt
./folder1/file2.txt
./folder2/file3.txt
./file4.txt

但是,简单地将此列表传递给 open 命令失败:
find . -name "*.txt" | xargs grep -l "RANDOMSTRING" | open

我认为这是因为“换行符”或“回车”,因为运行:
open ./folder1/file1.txt ./folder1/file2.txt ./folder2/file3.txt ./file4.txt

作品。

我只是不确定如何从返回的输出中删除换行符并将其通过管道传输到 open 命令。我需要另一个命令来通过管道传输输出,该命令将正确格式化文件列表,然后将列表通过管道传输到 open 命令。尽管换行符甚至可能不是问题。

附言- 我 不要想要创建一个临时文件来执行此操作。但是,我愿意创建 .zshrc 或 .bashrc 函数。

最佳答案

find . -name "*.txt" | xargs grep -l "RANDOMSTRING" | xargs open
只保留open没有工作,因为命令 open期望输入格式正确,而不是来自标准输入管道。 xargs是否可以从标准输入中逐行读取并将其提供给 open .同样作为旁注,xargs有时会遇到包含空格的文件名问题。所以在查找时,使用 -print0最后的选项来处理这个问题。使用 xargs 查找示例可在 man xargs 中找到

关于file - Mac打开grep文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16466666/

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