Как динамически создавать правила форматирования для printf?

У PythonInfo wiki есть решение для этого.

FAQ: Как скопировать байты в Python из ctypes.Structure?

def send(self):
    return buffer(self)[:]

Часто задаваемые вопросы: Как скопировать байты в ctypes.Structure из Python?

def receiveSome(self, bytes):
    fit = min(len(bytes), ctypes.sizeof(self))
    ctypes.memmove(ctypes.addressof(self), bytes, fit)
blockquote>

Их send является (более или менее) эквивалентом pack, а receiveSome - это тип pack_into. Если у вас есть «безопасная» ситуация, когда вы распаковываете в структуру того же типа, что и оригинал, вы можете сделать однострочное, как memmove(addressof(y), buffer(x)[:], sizeof(y)), скопировать x в y. Конечно, у вас, вероятно, будет переменная как второй аргумент, а не буквальная упаковка x.

0
задан user 1 March 2019 в 15:36
поделиться

2 ответа

Используйте одиночные символы '%' в строке формата. Вы избежали их, поэтому ничто не может быть заменено.

0
ответ дан ewindes 1 March 2019 в 15:36
поделиться

Насколько вы доверяете своим данным? Вы можете позволить анализатору команд удалить лишние пробелы ценой некоторого риска.

$: full_string= 

Если ваши данные находятся в файле ...

$: r=( $(<file) )
$: printf %-15s "${r[@]}"  

или даже

$: printf %-15s $(<file)  

Что вы можете не увидеть, так это то, что символ новой строки также был напечатан в поле шириной 15, поэтому в конце строки много пробелов.

Обратите внимание, что они повторно используют единственную строку форматирования (которая была достаточно простой, я не цитировал, но вы обычно должны это делать).

Размещение кавычек в неправильных местах может вызвать проблемы ...

$:  printf %-15s "$(<file)"  

Вы получите тот же результат из

$: printf %-15s "$full_string"  

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n'

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a b c d

Вы получите тот же результат из

$: printf %-15s "$full_string"  

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n'

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a b c d

Что вы можете не увидеть, так это то, что символ новой строки также был напечатан в поле шириной 15, поэтому в конце строки много пробелов.

Обратите внимание, что они повторно используют единственную строку форматирования (которая была достаточно простой, я не цитировал, но вы обычно должны это делать).

Размещение кавычек в неправильных местах может вызвать проблемы ...

$:  printf %-15s "$(<file)"  

Вы получите тот же результат из

$: printf %-15s "$full_string"  

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n'

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a b c d

Вы получите тот же результат из

$: printf %-15s "$full_string"  

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n'

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a b c d

или даже

$: printf %-15s $(<file)  

Что вы можете не увидеть, так это то, что символ новой строки также был напечатан в поле шириной 15, поэтому в конце строки много пробелов.

Обратите внимание, что они повторно используют единственную строку форматирования (которая была достаточно простой, я не цитировал, но вы обычно должны это делать).

Размещение кавычек в неправильных местах может вызвать проблемы ...

$:  printf %-15s "$(<file)"  

Вы получите тот же результат из

$: printf %-15s "$full_string"  

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n'

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a b c d

Вы получите тот же результат из

$: printf %-15s "$full_string"  

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n'

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a b c d

Что вы можете не увидеть, так это то, что символ новой строки также был напечатан в поле шириной 15, поэтому в конце строки много пробелов.

Обратите внимание, что они повторно используют единственную строку форматирования (которая была достаточно простой, я не цитировал, но вы обычно должны это делать).

Размещение кавычек в неправильных местах может вызвать проблемы ...

$:  printf %-15s "$(<file)"  

Вы получите тот же результат из

$: printf %-15s "$full_string"  

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n'

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a b c d

Вы получите тот же результат из

$: printf %-15s "$full_string"  

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n'

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

a\nb\nc\nd' $: printf %-15s $full_string

Если ваши данные находятся в файле ...

$: r=( $(<file) )
$: printf %-15s "${r[@]}"  

или даже

$: printf %-15s $(<file)  

Что вы можете не увидеть, так это то, что символ новой строки также был напечатан в поле шириной 15, поэтому в конце строки много пробелов.

Обратите внимание, что они повторно используют единственную строку форматирования (которая была достаточно простой, я не цитировал, но вы обычно должны это делать).

Размещение кавычек в неправильных местах может вызвать проблемы ...

$:  printf %-15s "$(<file)"  

Вы получите тот же результат из

$: printf %-15s "$full_string"  

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n'

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a b c d

Вы получите тот же результат из

$: printf %-15s "$full_string"  

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n'

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a b c d

Что вы можете не увидеть, так это то, что символ новой строки также был напечатан в поле шириной 15, поэтому в конце строки много пробелов.

Обратите внимание, что они повторно используют единственную строку форматирования (которая была достаточно простой, я не цитировал, но вы обычно должны это делать).

Размещение кавычек в неправильных местах может вызвать проблемы ...

$:  printf %-15s "$(<file)"  

Вы получите тот же результат из

$: printf %-15s "$full_string"  

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n'

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a b c d

Вы получите тот же результат из

$: printf %-15s "$full_string"  

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n'

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a b c d

или даже

$: printf %-15s $(<file)  

Что вы можете не увидеть, так это то, что символ новой строки также был напечатан в поле шириной 15, поэтому в конце строки много пробелов.

Обратите внимание, что они повторно используют единственную строку форматирования (которая была достаточно простой, я не цитировал, но вы обычно должны это делать).

Размещение кавычек в неправильных местах может вызвать проблемы ...

$:  printf %-15s "$(<file)"  

Вы получите тот же результат из

$: printf %-15s "$full_string"  

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n'

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a b c d

Вы получите тот же результат из

$: printf %-15s "$full_string"  

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n'

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a b c d

Что вы можете не увидеть, так это то, что символ новой строки также был напечатан в поле шириной 15, поэтому в конце строки много пробелов.

Обратите внимание, что они повторно используют единственную строку форматирования (которая была достаточно простой, я не цитировал, но вы обычно должны это делать).

Размещение кавычек в неправильных местах может вызвать проблемы ...

$:  printf %-15s "$(<file)"  

Вы получите тот же результат из

$: printf %-15s "$full_string"  

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n'

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

Примерно такой же набор предостережений относится к самому формату.

$: f="%-15s %5s"
$: printf $f $x  

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' # oops! %5s a b c d $: printf "$f" $x

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a bc d

Таким образом, вы можете динамически создавать различные форматы, если хотите, и просто заключить переменную в двойные кавычки, чтобы она анализировалась «правильно». Как всегда, проверьте это.

\n' a b c d

Вы получите тот же результат из

$: printf %-15s "$full_string"  

Как правило, вы хотите цитаты, но полезные вещи можно сделать, творчески упустив их и выпустив анализатор манипулировать пробелами. Просто знайте, что вы получаете. если в одном из этих полей есть пробел, все ставки отменены.

0
ответ дан Paul Hodges 1 March 2019 в 15:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: