如何将grep匹配到的文件直接用nedit/subl文本编辑器打开?
解决方法:用grep匹配文件后直接用编辑器打开
核心命令(鲁棒性强,支持含空格的文件名)
要实现用grep找到包含指定模式的文件,再用Sublime Text(subl)或nedit打开,推荐用以下命令:
针对Sublime Text
grep -ilZ "gating" * | xargs -0 subl
针对nedit
grep -ilZ "gating" * | xargs -0 nedit
命令解释
grep -ilZ "gating" *:-i:忽略大小写匹配(不需要可去掉)-l:仅输出包含匹配内容的文件名-Z:用**空字符(null)**分隔每个文件名,避免文件名含空格、特殊字符时被错误分割
xargs -0:读取以空字符分隔的输入,将所有文件名作为参数一次性传给编辑器,实现多文件在同一窗口打开
常见问题排查
提示「subl: command not found」或「nedit: command not found」
- 先执行
which subl(或which nedit)查看命令是否在系统PATH中 - 如果没有输出,说明编辑器的可执行文件路径未加入PATH:
- Mac上Sublime Text的默认路径是
/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl,可以直接用绝对路径替换subl,或者把该路径添加到环境变量PATH中 - Linux系统可以通过
sudo ln -s /usr/bin/nedit /usr/local/bin/(如果nedit安装在/usr/bin)创建软链接,或者修改~/.bashrc添加PATH - Windows系统需将编辑器安装目录添加到系统环境变量「PATH」中,重启终端后生效
- Mac上Sublime Text的默认路径是
- 先执行
命令替换方式的局限
也可以用subl $(grep -il "gating" *),但这种方式在文件名包含空格、换行符等特殊字符时会出错,因此优先推荐带-Z和-0的命令。
内容的提问来源于stack exchange,提问作者jktstance
相关产品推荐
相关产品推荐

