如何使用sed
删除最后一个点上的所有字符?
e.g:
ns:base.cocktails.cocktail_garnish
ns:user.maport.cocktail.cocktail_recipe
ns:base.cocktails.cocktail_drinkware
ns:user.pjf.default_domain.chicken_breed
ns:user.radiusrs.default_domain.astrological_sign
ns:base.disaster2.type_of_tornado
我想得到:
ns:base.cocktails
ns:user.maport
ns:base.cocktails
ns:user.pjf.default_domain
ns:user.radiusrs.default_domain
ns:base.disaster2
答案 0 :(得分:2)
那是基本的。
sed 's/\.[^.]*$//' file
答案 1 :(得分:1)
您可以使用awk
awk 'BEGIN {OFS=FS="."} NF--' file
但sed
对这项工作更好。
使用sed
正则表达式:
awk '{sub(/\.[^.]*$/,"")}1' file
答案 2 :(得分:0)
这可能适合你(GNU sed):
sed 's/\(.*\)\..*/\1/' file
使用贪婪查找最后.
并在此后删除。