你能帮我这个吗?
item : name_1
213321654
32549846546
item : name_2
8563161631
item : name_3
96315242161
73216510631
51654316416
需要转换
item : name_1 213321654 32549846546
item : name_2 8563161631
item : name_3 96315242161 73216510631 51654316416
答案1
这是 awk 的工作而不是 grep
awk 'NF==1 { printf " %s", $1 }
NF>1 { printf "%s%s",l,$0; l="\n" ;}
END { printf "%s",l ;}'
主要技巧是使用printf
以避免插入新行。
答案2
您可以使用著名的 sed oneliner 的变体来有条件地连接行:
$ sed -e :a -e '$!N;s/\n[[:space:]]\{1,\}/ /;ta' -e 'P;D' file
item : name_1 213321654 32549846546
item : name_2 8563161631
item : name_3 96315242161 73216510631 51654316416