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ファイルもできあがります.