以正确的格式将多行合并为一行

以正确的格式将多行合并为一行

我有一个文件说 FILE1.txt 包含以下数据:-

A
B
C
D
E
F
G
H
I
J
K
L

我需要另一个文件中的输出作为 FILE2:-

'A', 'B', 'C', 'D', 'E',
'F', 'G', 'H', 'I', 'J',
'K', 'L'

注意:- 新行应在每 5 个字符后开始,而不是在最后一个字符后出现逗号。

答案1

xargs printf "'%s', '%s', '%s', '%s', '%s',\n" <in >out

...尽管这确实在最后一个字符之后添加了逗号。好吧,它实际上最多执行四个尾随空字段加上最后一个逗号......

sed  -e:n -e'$!N;s/\n/&/4;to' -e$\!bn <in >out \
     -e:o -e"s//', '/g;s/.*/'&',/;$"s/,$//

^ 事实并非如此。

答案2

perl -p0e 's/.+/"$&",/g; s/,\n$//; s/\n/++$i%5?" ":"\n"/ge'

相关内容