我想在文件中搜索一个字符串并将生成的文件列表传递给 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 命令。我需要另一个命令来管道输出,它将正确格式化文件列表,然后将列表传递给打开命令。虽然换行符甚至可能不是问题。
PS - 我不想创建一个临时文件来执行此操作。但是,我愿意创建 .zshrc 或 .bashrc 函数。