Script Bash pentru a șirul de căutare aproape de un alt șir în vim (?)

0

Problema

Caut un (bash) comanda de a deschide un fișier (cum ar fi în vim), de căutare pentru un anumit șir de caractere, și de căutare înapoi de acolo, pentru a găsi un al doilea șir de caractere, și de ieșire (numai) al doilea șir. Pentru un astfel de dosar:

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

Am venit cu acest lucru până acum: vim -c "/bbb" -c "n" -c "?aaa" -c "n"

Acest lucru nu funcționează; vim spune:

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

Am, de asemenea, nevoie pentru a salva string aaa y într-un fișier/variabila-nu-mi dau seama cum.

TIA

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

La adresa ta principala întrebare... comenzile executate în -c parametrii sunt Ex comenzi, nu este normal modul de comenzi. Este doar așa se întâmplă că :/ și :? sunt valabile Ex comenzi și de a lucra vag ca modul normal omologii / și ?dar :n este o prescurtare pentru :help :next:

Edit [count] next file.

care este foarte diferit de modul normal :help n.


Dar de ce faci asta în Vim pentru a începe cu? Nu mi se pare adecvat.

2021-11-23 10:38:49
0

Ca altii au spus, vim nu poate fi cel mai bun instrument pentru ceea ce vrei pentru a atinge.

Puteți încerca :

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

În alte limbi

Această pagină este în alte limbi

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