用跳过其他模式替换一些模式

时间:2015-03-31 17:37:30

标签: unix sed

我的问题是如何格式化这样的文件:

Name 2ndName Surname 879654
Name Surname 546312

To This:

Name 2ndName,Surname,879654
Name,Surname,546312

正如您所看到的,如果sb具有2ndName,则难以在Name和2ndName之前节省空间。 我找到了这个命令:

 sed -i 's/[[:space:]]/,/' file.txt

但它不包括仅留下一些空间的可能性。

1 个答案:

答案 0 :(得分:0)

鉴于你的有限例子,这可能是你开始的地方:

awk 'NF == 4 {printf "%s %s,%s,%s\n",$1,$2,$3,$4} \
     NF == 3 {printf "%s,%s,%s\n",$1,$2,$3} \
     NF > 4 || NF < 3 {print "Error!"}' file.txt