2017-02-08 176 views
3

我有一個CSV文件格式如下:刪除字符使用sed

aaxx1234a1,aaxx1234a1 
aaxx1234a2,aaxx1234a2 

我試着使用SED的第一場逗號之前刪除2個字符,以便將文件成爲:

aaxx1234,aaxx1234a1 
aaxx1234,aaxx1234a2 

我試過sed 's/.{2},//'但這似乎沒有做任何事情。

任何人都可以給一個指針?

+3

如果你只匹配兩個字符會更容易只是做單曲/..,/,/' – 123

回答

4

sed需要{被反斜槓有特殊含義。此外,你不想刪除逗號:

sed 's/.\{2\},/,/' 

,或者,如果你的sed實現支持它,切換到擴展的正則表達式使用-r-E

sed -E 's/.{2},/,/' 
+0

謝謝... .. -E正是我需要的。 –

+0

我認爲你可能必須更加明確,即如果** first **字段的長度少於兩個字符會發生什麼?請記住'.'與''相匹配。 – potong

1

對於此正則表達式的語法,你需要擴展正則表達式(-r):

sed -r 's/.{2},/,/' test.csv