我想在文件中搜索一個字符串,並將生成的文件列表通過管道傳送到OSX的「打開」命令,從而在默認編輯器(又名非vim)中打開所有包含該字符串的文件以進行編輯。Mac打開grep文件列表
例如,運行:
find . -name "*.txt" | xargs grep -l "RANDOMSTRING"
可能返回:
./folder1/file1.txt
./folder1/file2.txt
./folder2/file3.txt
./file4.txt
然而,僅僅管道此列表打開命令失敗:
find . -name "*.txt" | xargs grep -l "RANDOMSTRING" | open
我認爲這是因爲「換行」或「回車」因爲運行:
open ./folder1/file1.txt ./folder1/file2.txt ./folder2/file3.txt ./file4.txt
的作品。
我只是不確定如何從返回的輸出中刪除換行符並將其傳遞給打開的命令。我需要另一個命令通過管道輸出,這將正確地格式化文件列表,然後將列表通過管道打開命令。雖然換行符可能不是問題。
P.S. - 我不要想創建一個臨時文件來做到這一點。然而,我很樂意創建一個.zshrc或.bashrc函數。
在最後一個管道中嘗試使用「xargs open」? – abasu 2013-05-09 18:08:36
@abasu。那樣做了。您應該提交答案,以便我可以將其標記爲正確。如果你不這樣做,我會讓其他人看到如何去做。 – 2013-05-13 20:21:17
謝謝:)我發佈了一個答案。 – abasu 2013-05-14 07:02:42