我正在尝试使用 printf 和 seq 打印以下模式:
0000
0001
0002
0003
我的问题是一旦我使用:
seq 0 10 | xargs printf %04d
我所有的输出都被格式化为同一行,如下所示:
0000000100020003
我仍然无法掌握使用 xargs 的窍门。在这种情况下如何正确使用它?
如果您不要求,该printf
命令不会输出换行符。尝试:
seq 0 10 | xargs printf '%04d\n'
请注意,您可以使用 just 实现相同的目的seq
,因为它允许指定 printf 样式的格式:
seq -f %04g 0 10
你不需要printf
或xargs
。seq
有-f
选项:
kent$ seq -f '%04G' 10
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
seq 0 10 | xargs printf "%04d\n"
原始问题缺少 . 末尾的换行符printf
。只需添加换行符即可解决问题。