Vim'deki başka bir dizeye yakın dizeyi aramak için Bash betiği (?)

0

Soru

Bir dosyayı (vim'de olduğu gibi) açmak, belirli bir dizeyi aramak ve oradan geriye doğru arama yapmak, ikinci bir dizeyi bulmak ve bu ikinci dizeyi (yalnızca) çıkarmak için bir (bash) komutu arıyorum. Böyle bir dosya için:

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

Şimdiye kadar bunu buldum.: vim -c "/bbb" -c "n" -c "?aaa" -c "n"

Bu işe yaramıyor; vim okur:

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

Ayrıca dizeyi kaydetmem gerekiyor aaa y bir dosyaya / değişkene -- Nasıl olduğunu anlayamıyorum.

TIA

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

Asıl sorunuzu çözmek için ... -c parametreler normal mod komutları değil Ex komutlarıdır. Öyle oluyor ki :/ ve :? geçerli Eski komutlar ve normal moddaki meslektaşları gibi belirsiz bir şekilde çalışır mı / ve ?, ama :n kısaltmadır :help :next:

Edit [count] next file.

normal moddan çok farklı olan :help n.


Ama bunu neden başlangıçta Vim'de yapıyorsun? Pek uygun görünmüyor.

2021-11-23 10:38:49
0

Diğerleri dedi, vim elde etmek istediğiniz şey için en iyi araç olmayabilir.

Deneyebilirsin :

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

Diğer dillerde

Bu sayfa diğer dillerde

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