2012-05-22 82 views
2

我需要找出如何刪除高達在我的文本文件中使用sed的行末尾的10位數字。sed在行尾刪除數字

例如,如果我有這樣的:

ajsdlfkjasldf1234567890 
asdlkjfalskdjf123456 
adsf;lkjasldfkjas123 

它應該成爲:

ajsdlfkjasldf 
asdlkjfalskdjf 
adsf;lkjasldfkjas 

誰能幫助?

我有這個,但它不工作:

sed 's/[0-9]{10}$//g' 
+0

我認爲這隻會在你有十個數字時才起作用。 – jahroy

+0

是的,你可以改進它,使其工作?我一直在嘗試,但我不能:s –

回答

5

你有沒有試過這個:

 sed 's/[0-9]+$//' 

如果啓用了擴展正則表達式(-E或-r,取決於您的sed版本),您的命令只會匹配並刪除行尾的整數10位數字。

你應該嘗試

 sed -r 's/[0-9]{1,10}$//' 
0

就讓我們來看看here建議你應該試試這個:

$ sed 's/[0-9]\{0,10\}$//g' 

{}應該逃脫,除非你切換到擴展的正則表達式語法:

$ sed -r 's/[0-9]{0,10}$//g' 
1

下面應該工作:

sed 's/[0-9]\{1,10\}$//' file 

sed正則表達式語法要求括號之前的反斜槓使用他們的重複,除非你使用擴展的正則表達式選項。