Sed-破折号前删除所有字符

时间:2018-10-15 13:49:17

标签: linux

我在下面的文件中包含内容

devtools-cloudformation
devtools-common-rpm

我想删除devtools-并保持其余字符不变,我在下面的命令中尝试了一下,但删除了所有破折号

sed 's/.*-//' projects.txt

2 个答案:

答案 0 :(得分:0)

这对我有用

sed 's/-/\n/;s/.*\n//' projects.txt

答案 1 :(得分:0)

如果我理解得很好,您要删除所有内容,直到第一个破折号。
试试这个:

sed 's/[^\-]*-//'

这也会删除第一个破折号。

如果要保留第一个破折号:

sed 's/[^\-]*-/-/'

您的解决方案不起作用的原因是这样的事实:正则表达式.*-的意思是“后跟破折号的任何内容”。
字符串devtools-common-与此条件匹配,因此被删除。
我建议的表达方式是“除破折号后再加破折号”。