CSVファイルからTexの表への変換

csvファイルからTexの表へ変換する関数を紹介します!

多分僕が使っているシェルの関数の中で一番便利です😀

.bashrcに貼り付けて,「source ~/.bashrc」などど実行すると使えるようになります.

ソースを以下に示します.

function Csv2tabular(){
    file=$1
    if [ $# -eq 0 -o ${file##*.} != 'csv' ]; then # csvファイルでなければ終了
        exit;
    fi
    fields=`awk -F ',' '{print NF}' ${file} | sort -n | tail -1` #最大列数を取得
    sed 's/ //g' ${file} > tmp.csv
    touch ${file%.*}.tex
    newFile=${file%.*}.tex
    if grep -q -U $'\r' $file; then
        sed -i 's/'$'\r''$//' tmp.csv
    fi
    echo -n '\begin{tabular}{' >> ${newFile}
    for ((i=0; i < $fields; i++)); do
        echo -n 'c|' >> ${newFile}
    done
    echo '}' >> ${newFile}
    sed -i 's/|}/}/' ${newFile}
    awk 'BEGIN {FS=","; OFS=" & "} {$1 = $1; print $0 " \\\\"}' tmp.csv >> ${newFile}
    echo '\end{tabular}' >>  ${newFile}
    rm tmp.csv
    cat ${newFile}
}

実行例は以下のとおりです

$ Csv2tabular exmaple.csv

実行すると,端末上にtexの表のソースが表示されます.コピペしてtexのソースに貼り付けてください!

また,texファイルもできあがります.

\ 最新情報をチェック /

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です