我有一个看起来像这样的文件:
2 1 word
78 3 other words
2 some other words here
54 bla bla
我想删除空格并在值和休息之间加上逗号。输出应该看起来像
2,1 word
78,3 other words
2,some other words here
54,bla bla
命令
sed -e 's/\s*([0-9])+\s.+/&/'
不会改变任何东西
答案 0 :(得分:3)
这应该可以解决问题吗?
sed -Ee 's/^[[:space:]]+([0-9]+)[[:space:]]+/\1,/' bob
2,1 word
78,3 other words
2,some other words here
54,bla bla
答案 1 :(得分:0)
您可以使用此sed删除每行中的所有前导和尾随空格,并在第一个数字后插入逗号:
sed -E 's/^[[:blank:]]+|[[:blank:]]+$//g; s/([[:digit:]]+)[[:blank:]]*/\1,/' file
2,1 word
78,3 other words
2,some other words here
54,bla bla
但是,如果每行中没有尾随空格,请使用:
sed -E 's/^[[:blank:]]*([[:digit:]]+)[[:blank:]]*/\1,/' file
[[:blank:]]
匹配空格或标签。
答案 2 :(得分:0)
这适用于任何POSIX sed:
$ sed 's/^[[:space:]]*//; s/[[:space:]]*$//; s/[[:space:]]/,/' file
2,1 word
78,3 other words
2,some other words here
54,bla bla
答案 3 :(得分:-1)
尝试:
sed -e 's/(\d) (\d)(*)/\1,\2\3' infile.txt