Bash skript na hľadaný reťazec v blízkosti iný reťazec v vim (?)

0

Otázka

Hľadám (bash) príkaz na otvorenie súboru (ako v vim), hľadať konkrétny reťazec a vyhľadávanie dozadu odtiaľ, nájsť druhý reťazec, a výstup (len), že druhý reťazec. Pre súboru, ako je tento:

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

Ja som prišiel s týmto tak ďaleko: vim -c "/bbb" -c "n" -c "?aaa" -c "n"

To nefunguje; vim znie:

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

Tiež som musieť uložiť reťazec aaa y do súboru/premenná -- nemôžem prísť na to ako.

TIA

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

Na adresu svojho hlavnou otázkou... príkazy vykonané v -c parametre sú Ex príkazy, nie normálnom režime príkazy. To len tak sa stane, že :/ a :? sú platné Ex príkazy a práce nejasne , ako ich normálnom režime partnerov / a ?,, ale :n je skratka pre :help :next:

Edit [count] next file.

čo je veľmi odlišné od normálneho režimu :help n.


Ale prečo to robíš, že v Vim začať? Nezdá vhodné.

2021-11-23 10:38:49
0

Ako iní, povedal: vim nemusí byť najlepším nástrojom na to, čo chcete dosiahnuť.

Môžete vyskúšať :

#!/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

V iných jazykoch

Táto stránka je v iných jazykoch

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