是的,我知道,我可以使用 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
命令行参数。但是它只执行一个命令,我想执行所有这些命令。
有任何想法吗?
答案如下,供参考,一个快速的 sed 方法是:
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
你有没有尝试过:source
?
vim example.html -c "source /tmp/a.script"