砸向脚本检索字符串靠近另一个字符串中vim(?)

0

的问题

我在寻找一个(bash)命令打开一个文件(如在vim),搜索一个特定的串,并向后搜索从那里,找到第二个字符串中,出(仅),第二字符串。 对于一个文件是这样的:

...
aaa x
...
aaa y
...       <-- any number of lines, but necessarily greater than 0
bbb
...

我已经想出了这一迄今为止: vim -c "/bbb" -c "n" -c "?aaa" -c "n"

这不会的工作;vim读取:

Error detected while processing command line:
E163: There is only one file to edit
Press ENTER or type command to continue

我也需要节省的字符串 aaa y 进入一个文件/变量的--我找不出如何。

TIA

bash vim
2021-11-23 10:00:41
2
0

解决你的主要问题的指令执行 -c 参数是前命令,不正常的模式的命令。 它就这么发生的 :/:? 有效的前命令和工作 模模糊糊地 想对应的正常模式 /?:n 是的缩写 :help :next:

Edit [count] next file.

这是 非常 不同于正常模式 :help n.


但你为什么要那样做在Vim开始呢? 它似乎并不合适。

2021-11-23 10:38:49
0

正如其他人所说的, vim 可能不是最好的工具,为什么你想要达到的目的。

你可以尝试:

#!/bin/bash

expect <<EOF
spawn vim input-file
send ":1\r/bbb\rn\r?aaa\r:.+1,\$ d\r:1,.-1d\r:w! output-file\r"
sleep 1
EOF
2021-11-23 12:58:20

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................