vim otomasyon ex komutları


1

Evet biliyorum, sed kullanabilirim. Ama bir çeşit hasta olduğumu varsayalım. Bir mazoşist olacaksa ..

Bir dosyam var /tmp/a.scriptiçeren:

%s_"taxonomy\.php[^"]*\([0-9]\)_"\1.taxonomy_g
%s_"rtf\.php[^"]*\([0-9]\)_"\1.rtf_g
%s_"csv\.php[^"]*\([0-9]\)_"\1.csv_g
%s_"xml\.php[^"]*\([0-9]\)_"\1.xml_g

(Onları vim tarihimden aldım)

Bu komutları bir dosyaya karşı çalıştırmayı çok isterim, example.html.

Ancak, bu betiğin dosyaya karşı nasıl çalıştırılacağını çözemiyorum.

Farkındayım -c komut satırı argümanı. Ama sadece tek bir komutu yerine getirir, bütün bu komutları çalıştırmak istiyorum.

Herhangi bir fikir?

Cevap, referans için aşağıdadır, bunu yapmanın hızlı bir yolu olacaktır:

for i in *.html ; do
  sed -i'' -e 's_"taxonomy\.php[^"]*\([0-9]\)_"\1.taxonomy_g'  $i
  sed -i'' -e 's_"rtf\.php[^"]*\([0-9]\)_"\1.rtf_g' $i
  sed -i'' -e 's_"csv\.php[^"]*\([0-9]\)_"\1.csv_g' $i
  sed -i'' -e 's_"xml\.php[^"]*\([0-9]\)_"\1.xml_g' $i
  echo $i
done

Üzerine Notlar sed örnek 1) -i'' eşittir -i Bash'in teklifleri işleme şekli nedeniyle; 2) verebilir -e birden çok kez s/// çoklu aramalardan kaçınmak için noktalı virgüllü komutlar; 3) verebilir *.html doğrudan sed.
grawity

Alıntılar, bunu bir süre önce yapma alışkanlığım oldu, ZSH kullanıyorum, daha önce bazı komik davranışlar almış olabilirim. Sed hakkındaki yorumlarınız çok açık, ben de o şekilde yapardım ama daha kolay anlaşılır bir örnek olmasını istedim. Herkes bir yerçekimi ninja değil!
Bryan Hunt

Yanıtlar:


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.