如何用' sed&#39 ;?剪切字符串的前缀?

时间:2015-03-26 08:38:15

标签: sed

请考虑以下几行:

prefix1.value[TAB]someString
prefix2.anotherVal[TAB]anotherString
val[TAB]String
pref.stuff[TAB]stuff
dontTouch[TAB]stuff

我想得到结果

value[TAB]someString
anotherVal[TAB]anotherString
val[TAB]String
stuff[TAB]stuff
dontTouch[TAB]stuff

所以如果有的话,我想剪切prefix.。正则表达式以第一个匹配最长的方式工作,因此我无法创建工作程序。是否可以使用单个sed程序执行此任务?

我的解决方案无法正常工作: sed 's/^[^\t\.]*\.\?\([^\t\.]\+\)\t\(.*\)/\1\t\2/'

3 个答案:

答案 0 :(得分:2)

这仅匹配前缀,并用空字符串替换它。

sed 's/^[^\t\.]*\.//'

答案 1 :(得分:1)

如果只有一个点可能,请尝试此操作:

sed -e 's/^.*\.//' file

答案 2 :(得分:1)

如果直到第一个点

sed 's/^[^.]*\.//' YourFile

如果直到最后一个点

se 's/.*\.//' YourFile

由你来定义你的前缀类型