我被困在我的剧本中的某一点。你能帮忙解决这个问题。
问题:有一个包含行的文件:
"<abc>-group ab:cd:ef +define_1 +DEFINE_2 </abc>"
现在我要从该文件中的所有行中删除-group ab:cd:ef
。
我试过
%s/-group .* //g
但它将删除所有测试直到最后一个空格。并且新文本将成为<abc></abc>
,因为我想要这样的内容:
<abc>+define_1 +DEFINE_2 </abc>
感谢。
答案 0 :(得分:2)
使用sed
sed 's/-group [[:graph:]]* //' file
在vi / vim中:
%s/-group [[:graph:]]* //g
答案 1 :(得分:1)
使用awk
awk '{sub(/-group [^ ]* /,"")}1' file
"<abc>+define_1 +DEFINE_2 </abc>"
或sed
sed -r 's/-group [^ ]* //' file
"<abc>+define_1 +DEFINE_2 </abc>"
答案 2 :(得分:0)
您应该将search & replace
表达式更改为以下内容:
`%s/-group ab:cd:ef //g`
这将避免整行匹配。