19

我正在尝试使用 printf 和 seq 打印以下模式:

0000
0001
0002
0003

我的问题是一旦我使用:

seq 0 10 | xargs printf %04d

我所有的输出都被格式化为同一行,如下所示:

0000000100020003

我仍然无法掌握使用 xargs 的窍门。在这种情况下如何正确使用它?

4

3 回答 3

38

如果您不要求,该printf命令不会输出换行符。尝试:

seq 0 10 | xargs printf '%04d\n'

请注意,您可以使用 just 实现相同的目的seq,因为它允许指定 printf 样式的格式:

seq -f %04g 0 10
于 2013-10-02T23:22:37.597 回答
15

你不需要printfxargsseq-f选项:

kent$  seq -f '%04G' 10
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
于 2013-10-02T23:23:59.587 回答
2
seq 0 10 | xargs printf "%04d\n"

原始问题缺少 . 末尾的换行符printf。只需添加换行符即可解决问题。

于 2013-10-02T23:24:06.157 回答