Например, у меня есть файл (производится с echo -e "var1\tvar2\t\var3\tvar4" > foo
), которые выводятся как:
$ cat foo
case elems meshing nlsys
uniform 2350 0.076662 2.78
non-conformal 348 0.013332 0.55
scale 318 0.013333 0.44
smarter 504 0.016666 0.64
submodel 360 .009999 0.40
unstruct-quad 640 0.019999 0.80
unstruct-tri 1484 0.01 0.88
Я бы предпочел вывод, как это (здесь я использовал vim
и :set tabstop=14
):
case elems meshing nlsys
uniform 2350 0.076662 2.78
non-conformal 348 0.013332 0.55
scale 318 0.013333 0.44
smarter 504 0.016666 0.64
submodel 360 .009999 0.40
unstruct-quad 640 0.019999 0.80
unstruct-tri 1484 0.01 0.88
Я могу получить ту же функциональность, cat
если использую $ tabs=15
в bash (см. Этот вопрос ). Есть ли программа, которая делает такое форматирование автоматически? Я не хочу экспериментировать со tabs
значением перед cat
созданием файла.
shell
command-line
cat
columns
Себастьян
источник
источник
-s $'\t'
(не найденный в каждой реализации столбца, хотя), если некоторые поля содержат пробелы.$'\t'
означает символ табуляции. Новая строка$'\n'
и так далее.column -ts: /etc/passwd
. Выглядит круто!-n
, т.е. избегайте объединения нескольких соседних разделителейНесколько вариантов:
column - нестандартная команда, некоторые реализации / версии не поддерживают опцию -s. Он вычисляет ширину столбца на основе входных данных, но это означает, что он может начать отображаться только после того, как на него введены все входные данные.
$'...'
Синтаксис ksh93 также встречается в zsh и bash.С зш:
источник
Вы также можете использовать
rs
в качестве альтернативыcolumn -t
:-c
изменяет разделитель входного столбца, но сам по-c
себе устанавливает разделитель входного столбца на вкладку.-z
устанавливает ширину каждого столбца равной ширине самого длинного элемента столбца вместо того, чтобы сделать все столбцы одинаковой ширины. Если в некоторых строках столбцов меньше, чем в первой строке, добавьте-n
.источник
rs
это? Я не установил эту команду ни в CentOS, ни в системах Ubuntu / Mint.rs
, поэтому вы можете установить его с помощьюapt-get install rs
.(x=$(cat);rs -c -z $(wc -l<<<"$x")<<<"$x")
? Я не знаю, как бы я использовал это с CSV-файломЕще один инструмент, который может сделать это,
tsv-pretty
от eBay TSV Utilities (отказ от ответственности: я автор). Требуется дополнительный шаг выравнивания числовых полей по десятичной запятой. Например:Есть несколько вариантов форматирования. Например,
-u
подчеркивает заголовок и-f
форматирует поплавки в поле аналогично для удобства чтения:Более подробная информация доступна в справочнике tsv-pretty .
источник
Речь шла о выводе столбцов с разделителями табуляции.
Таким образом, правильный ответ - это небольшая адаптация ответа @nisetama. Я добавил опцию -C $ '\ t', которая устанавливает форматирование вывода.
Kudo в @nisetama, хотя :)
источник
ОБРАЗЦЫ ОБРАЗЦОВ
REF LIB по адресу: https://github.com/gdbtek/linux-cookbooks/blob/master/libraries/util.bash
источник
sed
как используемые.