2015-08-31 88 views
-1

我需要只刪除以數字結尾的行(在文本文件中)。Bash - 刪除以數字結尾的行

前:

1987 Robocop 
1990 Robocop 2 
1993 Robocop 3 
2014 Robocop 

後:

1987 Robocop 
2014 Robocop 
+4

向我們展示您所做的任何嘗試,告訴我們他們未能如何工作。 –

+0

看看「正則表達式」和一個應用它們的工具,比如'grep'或'sed'。 – arkascha

+0

'([0-9] + Robocop [0-9] +)\ g' – ScottMcGready

回答

4

既然你引用我的favorite movie,我會回答:

sed '/[ \t][0-9][0-9]*[ \t]*$/d' movies.txt 

翻譯爲:

刪除任何有空格或製表符的行,然後是至少一位數字,然後是行尾的任意數量的空格或製表符。

在Linux上有更簡潔的方式來表示它,但是我給了你一個這樣做是爲了便攜性的困難。

1

隨着GNU sed的:

sed '/[0-9]$/d' file 

如果要編輯 「到位」 添加選項-i