2016-12-22 15 views
-2

私は、行と列を切り替えることにより、いくつかのCSVファイルを表示しようとしていますので、このこと:Sqliteを1缶に例えばバッシュ:表示CSV垂直

a,20 
b,10 
name,"Hello World" 

a,b,name 
20,10,"Hello World" 

でしょうがどのように見えますpivot clauseを使用しますが、私はより一般的なものでSQL固有ではないものを探しています。

あるセパレータ(ここでは,)で分割することで、行を列に簡単に変換できますか?

+0

ない正確な複製が、非常に近い:(http://stackoverflow.com/q/1729824/3266847)[bashでファイルをトランスポーズ] –

答えて

1
#!/bin/bash 
######################################### 
# Matrix transpose with Awk 
# 
# Usage: matrixT file fs ofs 
# The last two arguments are optional 
# 
# Kent 
# 2011-07-07 
# 
######################################### 
fs=${2:-" "} 
ofs=${3:-" "} 
file=$1 

awk -v FS="$fs" -v OFS="$ofs" '{for (i=1;i<=NF;i++) a[i,NR]=$i; }END{ 
    for(i=1;i<=NF;i++) { 
     for(j=1;j<=NR;j++) 
      printf "%s%s", a[i,j], (j==NR? ORS:OFS); 
    } 
}' "$file" 

時にはこれもまた頻繁に行う必要があるので、私はスクリプトを書きました(上記参照)。

あなたが行うことができます

theScript.sh file "," "," 
関連する問題