2013-10-02 2 views
6

Я пытаюсь напечатать следующую картину с помощью Printf и ПОСЛЕД:трубопровод далее к PRINTF для форматирования чисел

0000 
0001 
0002 
0003 

Моя проблема в том, когда я использую:

seq 0 10 | xargs printf %04d 

весь мой вывод форматированного в эту же строку:

0000000100020003 

Я до сих пор не могу получить возможность использовать xargs. Как я могу использовать его правильно в этом случае?

ответ

15

Команда printf не выводит прерывание строки, если вы ее не спрашиваете. Попробуйте:

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

Обратите внимание, что вы можете достичь того же только с seq, так как он позволяет задать формат Printf стиле:

seq -f %04g 0 10 
7

вам не нужно printf или xargs. seq имеет -f вариант:

kent$ seq -f '%04G' 10 
0001 
0002 
0003 
0004 
0005 
0006 
0007 
0008 
0009 
0010 
0
seq 0 10 | xargs printf "%04d\n" 

оригинальный вопрос недостающий символ новой строки в конце printf. Проблема заключается в простом добавлении символа новой строки.

+0

Пожалуйста, добавьте еще несколько пояснений. – Szymon

+0

Готово. Хотя есть лучший ответ, используя формат 'seq'. – unxnut

Смежные вопросы