1

Да, я знаю, я мог бы просто использовать sed. Но давайте предположим, что я какой-то больной. Мазохист, если вы будете ..

У меня есть файл /tmp/a.script , содержащий:

%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

(Я убрал их из моей истории VIM)

Я бы очень хотел, чтобы vim выполнил эти команды для файла, например, example.html .

Но я не могу понять, как выполнить этот скрипт для файла.

Мне известен аргумент командной строки -c . Но он выполняет только одну команду, я хочу выполнить все эти команды.

Есть идеи?

Ответ ниже, для справки, быстрый способ сделать это будет:

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

1 ответ1

2

Вы пробовали :source?

vim example.html -c "source /tmp/a.script"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .