管道seq到printf进行数字格式化

时间:2013-10-02 23:20:59

标签: bash printf xargs seq

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

0000
0001
0002
0003

我的问题是我曾经使用过:

seq 0 10 | xargs printf %04d

我的所有输出都被格式化为相同的行likeo:

0000000100020003

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

3 个答案:

答案 0 :(得分:21)

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

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

请注意,您只需seq即可实现相同功能,因为它允许指定printf样式格式:

seq -f %04g 0 10

答案 1 :(得分:12)

您不需要printfxargsseq-f选项:

kent$  seq -f '%04G' 10
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010

答案 2 :(得分:0)

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

原始问题在printf末尾缺少换行符。只需添加换行符就可以解决问题。