加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 编辑上一个命令输出的第n行的快速方法

发布时间:2020-12-15 21:41:16 所属栏目:安全 来源:网络整理
导读:我经常发现自己正在做这样的工作流程: $find . |grep somefile./tmp/somefile.xml./test/another-somefile.txt (评论输出) $vim ./tmp/somefile.xml 现在,如果有一些方便的方法来使用find命令的输出并将其提供给vim,那将是很好的. 我提出的最好的是: $nth
我经常发现自己正在做这样的工作流程:

$find . |grep somefile
./tmp/somefile.xml
./test/another-somefile.txt

(评论输出)

$vim ./tmp/somefile.xml

现在,如果有一些方便的方法来使用find命令的输出并将其提供给vim,那将是很好的.

我提出的最好的是:

$nth () { sed -n $1p; }
$find . |grep somefile
./tmp/somefile.xml
./test/another-somefile.txt

(评论输出)

$vim `!!|nth 2`

我想知道是否有其他的,可能更漂亮的方法来完成同样的事情?

为了澄清,我想要一种方便的方法从先前运行的命令中抓取第n行,以便快速打开该文件以便在vim中进行编辑,而无需剪切&使用鼠标或制表符粘贴文件名 – 完成我的文件路径.

解决方法

方式1:不要将精确文件传递给vim,而是整个输出.在vim中选择文件

目前您分两步工作:

1 – 启动find / grep … cmd

2 – vim !! ….

如果您确定要使用vim从查找结果中打开一个(或多个)文件.你可以尝试:

find. (with grep if you like)  |vim -

然后你将整个输出放在vim中,现在你可以使用vim magic将光标移动到你想要编辑的文件,然后按gf. (我有时这样做)

方法2:在您的find(或grep)中优化您的正则表达式,以获取您要编辑的单个文件.

这根本不是一件难事.然后你可以只是vim !!

你的nth()很好.但是想象输出中有30行,你的文件位于#16行.你怎么算?确定你最后可以添加| nl,那么你不能直接使用!!不再..

只是我的2美分

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读