我的問題是一樣的 Command line CSV viewer? 和column -s, -t
命令答案几乎是完美的 - 除了似乎處理空CSV領域我希望它不會。例如,給定的輸入命令行CSV觀衆
col1,,col3
,col2,
生產:
col1 col3
col2
,但我想:
col1 col3
col2
有沒有達到上述與列命令或以另一種方式實現這一目標的選項? (cygwin環境)
我的問題是一樣的 Command line CSV viewer? 和column -s, -t
命令答案几乎是完美的 - 除了似乎處理空CSV領域我希望它不會。例如,給定的輸入命令行CSV觀衆
col1,,col3
,col2,
生產:
col1 col3
col2
,但我想:
col1 col3
col2
有沒有達到上述與列命令或以另一種方式實現這一目標的選項? (cygwin環境)
這是一個從優雅的最遠的東西,它可能是你已經想到了,並正在尋找一個更好的解決方案的東西,但我解決這個煩惱做了一系列SED替代的把一個空白的空的領域。我有這些作爲我的bashrc中的函數...
csvcolumn() { sed -e "s/^$2/ $2/" -e "s/$2$/$2 /" -e "s/$2$2/$2 $2/g" -e "s/$2$2/$2 $2/g" $1 | column -t -s$2 ; }
csvcomma() { sed -e 's/^,/ ,/' -e 's/,$/, /' -e 's/,,/, ,/g' -e 's/,,/, ,/g' $1 | column -t -s, ; }
第一個需要兩個參數能夠指定分隔符字符。第二個是同樣的事情,但它只需要一個參數,並假定分隔符是逗號,因爲這是我最常使用的。
csvcolumn input.csv ,
或
csvcomma input.csv
使用cat和sed。
cat filename | sed 's/[~\],/\t/g'
即不匹配給出的例子('回聲COL1,COL3 |的sed的/ [〜\],/ \噸/ g''仍然輸出'COL1,col3')。 – 2011-05-26 01:21:01
如果內容寬度不同,則使用製表符可能會導致列不能正確排列。 – hanlonj 2011-05-26 01:27:01
如果你是一個vimmer,使用CSV plugin,這是juuust beautiful。
-n選項存在於debian中。例如爲:
>$ echo -e "col1,,col3\n,col2," | column -n -s, -t
col1 col3
col2
是啊你是對的我在想同樣的事情,但嘿它的作品。 – hanlonj 2011-05-27 06:28:41