Я хотел бы использовать команду Unix column
для форматирования текста. У меня есть поля, разделенные вкладками, но внутри каждого поля также есть пробелы. column
разделители на пробелах (табуляция и пробелы). Как сделать так, чтобы столбец использовал только вкладки в качестве разделителя?
Я пытался указать вкладку как разделитель, используя:
cat myfile | column -t -s"\t"
источник
column -t -s $'\t'
как удар , казалось, думали'\t'
означать как\
иt
, но$'\t'
означает вкладку буквального. Баш воняет$'\t'
делает вкладку разделителя. Но я почти уверен, чтоawk -F "\t"
использую вкладку в качестве разделителя для awk. Почему это работает, а не здесь для столбца?Я использовал следующее (работает только если ваш текст не содержит
|
):Это просто заменяет вкладки на каналы, а затем использует столбцы с каналами в качестве разделителей.
(Я сделал это, потому что я не увидел в ответе Стефана ничего такого, что могло бы сработать в ракушке рыбы. В противном случае ответ Стефана кажется хорошим.)
источник
Для POSIX,
$'...'
как известно, экранирование ANSI-C, не определено.Вместо этого вы можете использовать
$(printf '\t')
:$(printf '\011')
может использоваться, поскольку011
(восьмеричное представление десятичного числа 9) является кодом ANSI для символа горизонтальной табуляции:Однако см. Ниже комментарий Стефана Шазеля о том, почему это может быть непоследовательным в разных версиях оболочки.
источник
"$(printf '\t')"
как показано в моем ответе. Обратите внимание, что$'...'
планируется включить в следующую основную версию спецификации POSIX.$(printf '\t')
POSIX? Спасибо!Это
-t
для выбора количества столбцов, которые вы хотите. Оставление этого бланка ничего не меняет. Кроме того, вы хотите пробел после,-s
так что попробуйте это:cat myfile | column -s \t
источник
column
заполняет строки перед столбцами. Вы можете быть заинтересованы вpr