Text-Processing如何在控制台中顯示 TSV (csv),當空單元格失去時:
如何在控制台中顯示 TSV (csv),當空單元格失去時:column -t -s $'t'
我的文件中以
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
方法?也許是另一個工具?
您可以只使用 Debian 的
column
. 它提供了-n
使其完全按照您想要的方式工作的選項。或者,您可以在空列中放置一個空格,使用
sed
:sed ':x s/\(^\|\t\)\t/\1 \t/; t x' < in.tsv | column -t -s $'\t'
例子:
$ sed ':x s/\(^\|\t\)\t/\1 \t/; t x' < in.tsv | column -t -s $'\t' A B C D b1 d1 d2 a3 d3
sed 's/||/| |/g;s/||/| |/g' filename-here
上面的命令是用於管道的,所以用 tabspace 替換它。
您只需要用空格替換空列並將輸出通過管道傳輸到您已經在使用的命令。