Mam plik z kolumnami spearated tab
.
Mam plik, gdy niektóre wiersze mają puste komórki (na początku, w środku).
W takich przypadkach column -t -s $'\t'
po prostu zawodzi:
Wejście:
$ 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
wyjście kolumny:
$ cat in.tsv | column -t -s $'\t'
A B C D
b1 d1
d2
a3 d3
zamiast:
A B C D
b1 d1
d2
a3 d3
Czy mógłbyś polecić, jak wykonać formatowanie wiersza poleceń TSV? (w uniksowy sposób chcę przekazać dane wyjściowe programu do formatera, jak column
)
Jakikolwiek sposób na „naprawienie” column
? Może inne narzędzie?
text-processing
csv
spreadsheet
Grzegorz Wierzowiecki
źródło
źródło
\1
go pusty ciąg?\(^\)
sam dopasowuje pusty ciąg, zakotwiczony na początku wiersza.\1
„tworzy kopię” tego pustego ciągu.Powyższe polecenie dotyczy potoku, więc zamień je na tabspace.
Wystarczy zastąpić puste kolumny pustą spacją i przesłać dane wyjściowe do polecenia, którego już używasz.
źródło