J'ai un fichier avec des colonnes spearated avec tab
.
J'ai un fichier lorsque certaines lignes ont des cellules vides (au début, au milieu).
Dans de tels cas, column -t -s $'\t'
échoue tout simplement:
Contribution:
$ 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
sortie de colonne:
$ cat in.tsv | column -t -s $'\t'
A B C D
b1 d1
d2
a3 d3
au lieu de:
A B C D
b1 d1
d2
a3 d3
Pourriez-vous recommander comment effectuer le formatage de la ligne de commande TSV? (à la manière Unix, je veux diriger la sortie du programme dans le formateur, comme column
)
Une manière de "fixer" l' column
approche? Peut-être un autre outil?
text-processing
csv
spreadsheet
Grzegorz Wierzowiecki
la source
la source
\1
par une chaîne vide?\(^\)
seul correspond à une chaîne vide, ancrée au début de la ligne.\1
"produit une copie" de cette chaîne vide.La commande ci-dessus concerne le tuyau, remplacez-le par un espace de tabulation.
Il vous suffit de remplacer les colonnes vides par un espace vide et de diriger la sortie vers la commande que vous utilisez déjà.
la source