如何使用sed在连续的字符之间放置空格?

时间:2015-12-01 15:31:05

标签: sed

我一直在尝试编写一个将csv文件转换为汇合表的bash脚本。

我想要一个转换的sed命令(或几个):

one,two,,three

|one|two| |three|

请注意,没有数据时需要空格。

我一直在努力寻找有用的东西。

1 个答案:

答案 0 :(得分:3)

以下是一个例子:

# first, replace comma with pipe
y/,/|/
# loop, replacing consecutive pipes
:loop
s/||/| |/
tloop

或者,您应该能够s/||/| |/g两次,因为第一个错过的所有||(由于开始重叠上一个替换的结束)将被第二个捕获。