Несмотря на то, что vim довольно мощный, я бы не использовал vim для этого.Вместо этого это можно сделать с помощью комбинации общих утилит командной строки.
Я предположил, что пустая строка в приведенном выше примере на самом деле пустая и не содержит пробелов или других пробельных символов.Вы можете использовать следующее, чтобы делать то, что вы хотите.
sed -e "s,/home/user/mydocs,/var/lib/mydir," -e "s,/home/user/waves,/var/sounds," -e "/^$/d" file1
Вы можете использовать эту команду вместе с find
и циклом for, чтобы сделать это для группы файлов:
for file in `find . -maxdepth 1 -type f`
do
sed -e "s,/home/user/mydocs,/var/lib/mydir," -e "s,/home/user/waves,/var/sounds," -e "/^$/d" $file
done
В цикле for указанная выше команда find ограничивает вывод всеми файлами в текущем каталоге (включая точечные файлы), присваивая каждую строку из вывода find переменной file
, а затем запускает команду sed
ранее преобразовать файл так, как вы хотите, чтобы он был преобразован.