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美分 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |