如何用 'sed' 剪切字符串的前缀?
How to cut prefix of string with '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\(.*\)/\t/'
这只匹配前缀,并将其替换为空字符串。
sed 's/^[^\t\.]*\.//'
如果可能只有一个点,试试这个:
sed -e 's/^.*\.//' file
如果直到第一个点
sed 's/^[^.]*\.//' YourFile
如果直到最后一个点
se 's/.*\.//' YourFile
由您定义前缀类型
考虑以下几行:
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\(.*\)/\t/'
这只匹配前缀,并将其替换为空字符串。
sed 's/^[^\t\.]*\.//'
如果可能只有一个点,试试这个:
sed -e 's/^.*\.//' file
如果直到第一个点
sed 's/^[^.]*\.//' YourFile
如果直到最后一个点
se 's/.*\.//' YourFile
由您定义前缀类型