如何使用列表中的 xargs 打印每对 args

How to print each couple of args using xargs from a list

我有这个列表

111
222
333
444
555

我想打印每一行以包含 2 个耦合参数,如下所示:

111 222
222 333
333 444
444 555
555

有没有办法用 xargs 做到这一点?或任何单行命令(性能很重要)

谢谢

awk 似乎比 xargs:

更合适
$ awk 'NR>1 {print prev, [=10=]} {prev=[=10=]} END {print prev}' file.txt
111 222
222 333
333 444
444 555
555

您还可以将 paste 与两个输入一起使用:一个作为原始文件,另一个将第一行剥离(此处使用 tail -n +2):

使用process substitution

paste file.txt <(tail -n +2 file.txt)

使用@pjh 的pipeline (as

tail -n +2 file.txt | paste file.txt -

双输出

111 222
222 333
333 444
444 555
555 

使用 xargs 和内联 shell 脚本:

xargs -a list.txt sh -c 'while [ $# -gt 0 ]; do printf %s\ %s\n "" ""; shift; done' _