我有以下文件
a
b c d e
所有标签都是分开的。
我的输出应该是以下
a,
b,c,d,e
我正在尝试以下方法。
sed 's/[[:space:]]*/,/g' input.txt
this gives me the following
,a,
,b,c,d,e,
我应该如何删除两行的第一个逗号。所以输出应该是这样的
一个, B,C,d,E,
设法执行以下操作,但使用了两个sed命令。
cat input.txt | sed 's/[[:space:]]*/,/g' | sed 's/^,//' (sorry useless use of cat)
使用一个sed命令有更好的方法吗? (我不是在寻找awk / tr或任何其他方法,只有sed)
答案 0 :(得分:1)
你可以试试下面的sed命令,
$ sed ':a;N;$!ba;s/\n/,\n/g;s/ \+/,/g' file
a,
b,c,d,e
或强>
sed ':a;N;$!ba;s/\n/,\n/g;s/[[:blank:]]\+/,/g' file
答案 1 :(得分:1)
添加空格前有一些字母的条件:
sed 's/\([a-z]\+\)[[:space:]]*/\1,/g' input.txt
在一个命令中链接两个sed规则(这种方式可能更具可读性):
sed 's/[[:space:]]*/,/g;s/^,//' input.txt