我想使用bash加入另一个命令输出中的每一组N行。
我可以使用任何标准的linux命令来实现这一目标吗?
示例:
./command
46.219464 0.000993
17.951781 0.002545
15.770583 0.002873
87.431820 0.000664
97.380751 0.001921
25.338819 0.007437
期望的输出:
46.219464 0.000993 17.951781 0.002545
15.770583 0.002873 87.431820 0.000664
97.380751 0.001921 25.338819 0.007437
答案 0 :(得分:7)
如果您的输出具有一致的字段数,则可以使用xargs -n N
对每行X个元素进行分组:
$ ...command... | xargs -n4
46.219464 0.000993 17.951781 0.002545
15.770583 0.002873 87.431820 0.000664
97.380751 0.001921 25.338819 0.007437
来自man xargs
:
-n max-args, - max-args = max-args
每个命令行最多使用max-args参数。少于max-args 如果超出大小(请参阅-s选项),将使用参数, 除非给出-x选项,否则xargs将退出。
答案 1 :(得分:3)
似乎您尝试使用分隔符\t
(标签)加入每两行。如果是,那么您可以尝试以下粘贴命令,
command | paste -d'\t' - -
如果您想要空格作为分隔符,请使用-d<space>
,
command | paste -d' ' - -