如何打开 grep 找到的包含特定文本的所有文件,递归

问题描述 投票:0回答:2

我打字

grep -r 'something' .

并且 grep 找到了很多匹配项。

现在我想打开找到的所有文件。

我试试

grep -r 'something' . | xargs vim

什么都没发生。

macos grep xargs
2个回答
0
投票

也许这个?! :)

grep -rl 'something' . | xargs vim

vim "$(grep -rl 'something' .)"

-l, --files-with-matches
抑制正常输出;而是打印通常打印输出的每个输入文件的名称。扫描每个输入文件在第一次匹配时停止。


0
投票

假设您的文件中没有特殊字符(如换行符),试试这个:

grep -lr 'something' . | xargs bash -c 'vim "$@" < /dev/tty' _
© www.soinside.com 2019 - 2024. All rights reserved.