gpt4 book ai didi

bash - 连接线,以记录数为模

转载 作者:行者123 更新时间:2023-11-29 09:50:51 28 4
gpt4 key购买 nike

假设我的流是 x*N 行长,其中 x 是记录数,N 是每条记录的列数,并且按列输出。例如,x=2,N=3:

1
2
Alice
Bob
London
New York

我如何加入每一行,以记录数为模,返回到列中:

1   Alice   London
2 Bob New York

如果我使用 paste 和 N 个 -,我会得到转置后的输出。我可以使用 split-l 选项等于 N,然后用 paste 重新组合这些片段,但我想这样做它在流中,而不会到处吐出临时文件。

是否有“简单”的解决方案(即,而不是调用类似 awk 的方法)?我在想可能有一些神奇的 join 解决方案,但我看不到它...


编辑 另一个例子,当 x=5 和 N=3 时:

1
2
3
4
5
a
b
c
d
e
alpha
beta
gamma
delta
epsilon

预期输出:

1   a   alpha
2 b beta
3 c gamma
4 d delta
5 e epsilon

最佳答案

您正在寻找pr将流“列化”:

pr -T -s$'\t' -3 <<'END_STREAM'
1
2
Alice
Bob
London
New York
END_STREAM
1       Alice   London
2 Bob New York

pr 在 coreutils 中。

关于bash - 连接线,以记录数为模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45692388/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com