询问
我用Bash。当我寻找文件时,通常会执行以下操作:
find -name stackexchange.hs
通常结果将如下所示:
/youre/the/man/now/dog/stackexchange.hs
/you/are/no/longer/the/dog/dog/stackexchange.hs
/this/is/the/file/i/want/stackexchange.hs
然后,我要执行以下操作之一:
- 选项1:在vim中打开结果列表中的最后一项。
- 选项2:在vim中的结果列表中打开第N个项目。
目前,我用鼠标剪切粘贴。这使我想到我的问题:
- 是否有一种轻松的单线方式来完成选项1和2?请注意,这是在
find
命令之后发生的。 - 有没有办法在某种bash向量/数组中从stdout捕获N行?
理想用法
$ find -name am_i_really_all_alone.txt
./borges/library/you_are_not_alone.txt
./borges/library/am_i_really_all_alone.txt
$ vim (N)
(语法和语义可能有所不同,但您明白了)
相似性
似乎有几个类似的问题。这是我的感知差异(我很乐意接受启发):
- “使用find命令打开找到的文件”重点在于创建一行以将文件名从中传送
find
到vim
(或其他任何文件中)。就我而言,我想find
先进行管道传输(可以这么说)。我的捕获/使用严格地发生在之后。 - “重新使用Lind命令的最后一个输出”似乎很有效,但似乎只是重复执行该命令,并不代表捕获第N行输出。坦白说,这吓到我了。
- “捕获内置Bash的多行输出”很接近,但还不完全是。
- “终端,外壳,tty,控制台等之间的确切区别是什么?” 这真的只是一本好书。
谢谢您的帮助!在90年代少年时代使用* nix / BSD并打电话给倦怠的酸头邻居吓坏了,以帮助我为即插即用声卡安装驱动程序后,我对讨论命令感到欣慰,与(不太可能)令人恐惧的个人保持联系。回来感觉很好。
vim $(command |tail -n1)
。