在 command 中paste - - - -
,numbers-
等于未来的列号。就我而言,我有 55,000 个未来专栏,对我来说不需要投入 55,000 个-
我可以使用的东西?
例子:
title1:A1
title2:A2
title3:A3
title4:A4
title5:A5
title1:B1
title2:B2
title3:B3
title4:B4
title5:B5
title1:C1
title2:C2
title3:C3
title4:C4
title5:C5
title1:D1
title2:D2
title3:D3
title4:D4
title5:D5
我想将此文件(A)转换为以下内容:
title1 A1 title1 B1 title1 C1 title1 D1 title2 A2
title2 B2 title2 C2 title2 D2 title3 A3 title3 B3
title3 C3 title3 D3 title4 A4 title4 B4 title4 C4
title4 D4 title5 A5 title5 B5 title5 C5 title5 D5
为此,我使用了:
$ sed 's/:/ /; /^$/d' sample.txt \
| sort | paste - - - - -
但在我的文件中,我将有一个很大的列号:55,000 或 400 列。替代-
?? 的其他形式是什么?
答案1
基于这个答案的字符串乘法技巧:https://stackoverflow.com/a/5349772/4082052
使用替换来插入可编程数量的破折号
paste $(for i in {1..400}; do echo -n '- '; done)
或者
paste $(printf -- "- %.s" {1..400})
要知道为什么printf --
使用:printf 中的破折号
答案2
对于 4 行的文件:
paste $(for((i=1;i<4;i++)); do echo -n "- "; done; echo -n "-") < file