2014-03-28 49 views
0

如何使用sed從最後一個點刪除所有字符?如何使用sed從最後一個點刪除所有字符?

例如爲:

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

這個問題似乎是離題,因爲它是關於Unix的使用,屬於http://unix.stackexchange.com – Raptor

+1

也許......'sed'是一種編程語言。 –

回答

2

這是基本的。

sed 's/\.[^.]*$//' file 
1

你可以使用awk

awk 'BEGIN {OFS=FS="."} NF--' file 

sed是這個工作做得更好。


使用正則表達式sed

awk '{sub(/\.[^.]*$/,"")}1' file 
0

這可能爲你工作(GNU SED):

sed 's/\(.*\)\..*/\1/' file 

用貪婪找到最後.,然後刪除。

相關問題