我有一个像这样的grep搜索命令:
grep -rl "<script" .
结果是这样的:
./filename.txt
./filename2.txt
./filename3.txt
我想在结果中取每一行并在Notepad ++中打开它
我可以在Notepad ++中打开一个文件:
"C:\Program Files (x86)\Notepad++\notepad++.exe" ./filename.txt
我的命令行命令在记事本中打开每个结果会是什么样的?
答案 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 是匹配数。