我使用vim
在命令行中解析文件(我正在运行gentoo linux):
其中一个命令不起作用[我认为]它应该:
vim -c "v/pattern/d | wq" file
出于某种原因,在添加| wq
时,这不会删除没有指定模式的行。如果我用vim
打开文件并运行相同的命令,它就可以工作。如果我在没有| wq
的命令行中运行它就可以了。
为什么这不起作用?
答案 0 :(得分:3)
原因是Vim将其视为:v/pattern/(d | wq)
,请参阅:help :bar
以获取解释。要避免这种情况,请将:v
包裹在:execute
:
vim -c "exe 'v/pattern/d' | wq" file
或者更简单,将其作为两个单独的命令提交:
vim -c "v/pattern/d" -c "wq" file
PS:当然,@博格丹有一个观点;你不需要Vim来完成这个简单的任务。
答案 1 :(得分:1)
我建议您使用 sed :
sed -i '/pattern/d' ./file