У меня есть файл с колонками, с которыми связано tab
.
У меня есть файл, когда в некоторых строках есть пустые ячейки (в начале, посередине).
В таких случаях column -t -s $'\t'
просто выходит из строя:
Входные данные:
$ echo -e 'A\tB\tC\tD\n\tb1\t\td1\n\t\t\td2\na3\t\t\td3' > in.tsv
$ hexdump -C in.tsv
00000000 41 09 42 09 43 09 44 0a 09 62 31 09 09 64 31 0a |A.B.C.D..b1..d1.|
00000010 09 09 09 64 32 0a 61 33 09 09 09 64 33 0a |...d2.a3...d3.|
0000001e
вывод столбца:
$ cat in.tsv | column -t -s $'\t'
A B C D
b1 d1
d2
a3 d3
вместо того:
A B C D
b1 d1
d2
a3 d3
Не могли бы вы порекомендовать, как сделать форматирование командной строки TSV? (в Unix, я хочу направить вывод программы в форматтер, например column
)
Есть ли способ «фиксации» column
подхода? Может быть, другой инструмент?
text-processing
csv
spreadsheet
Гжегож Вежовецкий
источник
источник
\1
пустой строкой?\(^\)
один соответствует пустой строке, привязанной к началу строки.\1
«производит копию» этой пустой строки.Приведенная выше команда относится к трубе, поэтому замените ее на tabspace.
Вам просто нужно заменить пустые столбцы пробелом и передать вывод команде, которую вы уже используете.
источник