2014-06-27 52 views
1

我有一個以下格式的簡單文本文件。SED刪除每行的第一個數字和空格的命令

1 12658003Y 
2 34345345N 
3 34653785Y 
4 36452342N 
5 86747488Y 
6 34634543Y 
so on 
10 37456338Y 
11 33535555Y 
12 37456378Y 
so on 
100 23432434Y 

正如你所看到的,第一個數字後面有兩個空格。

我想寫SED命令刪除空格前的數字。是否有任何SED命令在空格之前刪除空格和數字?

輸出文件應該如下所示。

12658003Y 
34345345N 
34653785Y 
36452342N 
so on.. 

請協助。我對shell腳本非常陌生。

+0

您是否看到[手動](https://duckduckgo.com/?q=sed+manual)? – devnull

+0

如果你不是絕對需要'sed',你可以嘗試'grep -o'[0-9] + Y'' – Aserre

+0

@SandeepDongapure,因爲你回到了網站,你可以考慮在這裏接受一個答案! – fedorqui

回答

0

你sed的命令是,

sed 's/.* //g' file 

這將刪除第一個數字與空間一起跟着。

+0

不,這樣貪婪地匹配最後一個空格前的所有內容,再加上空格。 –

+0

對不起,它*會*使用這些數據,因爲只有兩個字段。儘管如此,雖然不如其強大。 –

+1

棒極了!這工作!謝謝Avinash Raj –

0

刪除前導數字,那麼下面的空間:

sed 's/^[0-9]* *//' file 
+0

謝謝湯姆.. :) –

1
sed 's/[0-9]\+\s\+//' infile > outfile 

說明:

S:我們要使用替代

/:馬克開始和結束我們想要匹配的表達

[0-9]:匹配任何數字

+:匹配先前的一個或多個時間

\ S:空間

+:匹配前一或更多時間

/:馬克開始我們想改變我們的墊子CHES到(這是什麼)

/:一些特殊的經營者走後這個(我們不使用這樣的)

INFILE:我們要改變文件

>:管標準輸出到

OUTFILE:,我們要存儲輸出

+0

請注意,'\ +'是GNU文件的一個擴展,'\ s'似乎是一個*無證*一個,據我所知。它們可能不適用於其他版本的'sed'。 –

相關問題