top of page

【システム】シェルスクリプトで CSV → タブ区切りデータに変換

  • 執筆者の写真: Taiju YONEDA
    Taiju YONEDA
  • 2023年10月18日
  • 読了時間: 1分

更新日:2023年10月20日

ディレクトリ内のコンマ区切りデータ(.CSV)をタブ区切りデータ(.TSV)に変換します。


csv_tsv.sh

#!/usr/bin/zsh

for FILE in *.csv
do
	cat $FILE | LC_CTYPE=C tr "," "\t" > ${FILE%.csv}.dat
done

しょうもないですが、備忘録として。環境はMacのzsh。

ミソはtrコマンドの前に"LC_CTYPE=C"を付けること(参考:クロジカさんhttps://tech.kurojica.com/archives/24837/)。意味はよく知りませんが、これがないと、"tr: Illegal byte sequence"と怒られてしまいました。


このスクリプトを実行

sh csv_tsv.sh

ディレクトリ内のコンマ区切りデータ(CSV)がタブ区切りデータ(TSV)に変換できます。(好みで拡張子は.datにしていますが、グラフ描画ソフトgnuplotの処理では関係ないらしいので、今回は気にしてません。)



【経緯】

数値シミュレーションソフトの解析データはタブ区切り(TSV)、実験装置の測定データはコンマ区切り(CSV)で出力されていました。

gnuoplotでは2種類のデータ形式が混在した状態ではプロットが面倒です。

se dataf sep "\t ,"

というように、separator文字を、「タブ」「空白」「コンマ」というように複数指定しておけば、それぞれの形式データを一気にプロットできるらしいです(参考:ゴルディアスの涙目さんhttps://gordiustears.net/data-separator-on-gnuplot/)。で、試してみたのですが、"warning: Skipping data file with no valid points"と言うことを聞いてくれません。しかたがないので、データ形式をどっちかに統一することにしました。ただ、データファイルは100個以上あるので、手動では大変。シェルスクリプトで自動化処理をやりました。


 
 
 

最新記事

すべて表示
【システム】macデスクトップの外付けドライブ一部非表示

macOSで、デスクトップに表示されるリムーバブルディスクを、ディスクごとに表示したりさせなかったりする設定をメモしておきます。 (( 状況 )) macでは何かリムーバブルディスクを接続すれば、デスクトップにショートカットアイコンを表示することができます。(Finderの...

 
 
 

Comments


t-yoneda[at]fc.ritsumei.ac.jp

©2024 みちはた / 米田大樹の研究紹介

bottom of page