我的問題是,我有2列。 secound列中的文本使用逗號分隔值。我希望將2列以逗號分隔,並且第2列中的逗號分隔文本應保持原樣。如何在UNIX中用逗號替換第一個空格
E.g:A,B是列的名稱:
A B
123 Hi There
234 Hello there
我想要的輸出
A,B
123,Hi There
234,Hellothere
有人可以幫我嗎?
我的問題是,我有2列。 secound列中的文本使用逗號分隔值。我希望將2列以逗號分隔,並且第2列中的逗號分隔文本應保持原樣。如何在UNIX中用逗號替換第一個空格
E.g:A,B是列的名稱:
A B
123 Hi There
234 Hello there
我想要的輸出
A,B
123,Hi There
234,Hellothere
有人可以幫我嗎?
您可以使用此命令sed
sed -r 's/\s+/,/' File_Name
或
sed -r 's/ +/,/' File_Name
-r, --regexp-extended
use extended regular expressions in the script.
輸出:
A,B
123,Hi There
234,Hello there
嘗試,sed 's/ /,/' filename.txt
。
注意這隻適用於第一空間或任何你選擇的字符搜索。 – 2016-02-06 07:54:12
這對於osx10中的bash效果更好......它不支持'-r'正則表達式。如果您搜索爲全球。它取代了所有的空間......但沒有全局性,它只取代了每一行的第一個找到的空間。 – RightmireM 2016-06-15 14:20:09
注意輸出與OP所期望的不匹配。也許你想用'sed'/ \ + /,/''來替換列之間的多個空格。 – fedorqui 2014-11-04 12:17:43
這是取代's'的第一次出現,而不是空間.. – user80040 2014-11-04 12:18:48
@fedorqui,**謝謝**。你的建議改進了我的答案。 – Kalanidhi 2014-11-04 12:20:58