使用grep -rl“[SEARCH]”。如何打开记事本++中的每个文件

时间:2013-11-05 17:57:05

标签: bash grep notepad++

我有一个像这样的grep搜索命令:

grep -rl "<script" .

结果是这样的:

./filename.txt
./filename2.txt
./filename3.txt

我想在结果中取每一行并在Notepad ++中打开它

我可以在Notepad ++中打开一个文件:

"C:\Program Files (x86)\Notepad++\notepad++.exe" ./filename.txt

我的命令行命令在记事本中打开每个结果会是什么样的?

2 个答案:

答案 0 :(得分:2)

我在这里猜测你正在使用哪种操作系统,但是既然你使用了bash和grep,我认为bash-solution就是你想要的,即以下内容可能适用于你的特定bash,似乎在Windows上运行:< / p>

"C:\Program Files (x86)\Notepad++\notepad++.exe" $(grep -rl "<script" .)

“技巧”是$(...),它运行封闭的命令并将单独的结果行放在命令行上。如果生成的文件名具有bash特有的字符,则需要更复杂的解决方案。

答案 1 :(得分:0)

如果您希望Notepad ++将文件打开到grep匹配的行,您可以执行

for match in $(grep -rn "<script" .); do
    "C:\Program Files (x86)\Notepad++\notepad++.exe" `echo $match | awk -F":" '{print "-n"$2" "$1}'`
done

这将调用Notepad ++ n 次,其中 n 是匹配数。