我的问题是,我有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