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

Pao*_*olo 11 bash printf xargs seq

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

0000
0001
0002
0003
Run Code Online (Sandbox Code Playgroud)

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

seq 0 10 | xargs printf %04d
Run Code Online (Sandbox Code Playgroud)

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

0000000100020003
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*oni 22

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

seq 0 10 | xargs printf '%04d\n'
Run Code Online (Sandbox Code Playgroud)

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

seq -f %04g 0 10
Run Code Online (Sandbox Code Playgroud)


Ken*_*ent 12

你不需要printfxargs.seq-f选项:

kent$  seq -f '%04G' 10
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
Run Code Online (Sandbox Code Playgroud)


unx*_*nut 5

seq 0 10 | xargs printf "%04d\n"
Run Code Online (Sandbox Code Playgroud)

最初的问题是缺少末尾的换行符printf。只需添加换行符即可解决问题。