たくさん集めたアンケートなどが複数ファイルに分かれているから結合したいものよ。
Windowsだとパワークエリーでなんか色々できるっぽいけど、Macはイマイチ・・!
どうしたものか。
の解決策。
ターミナルからCatで結合
思ったより簡単でびっくりしました。
ターミナルというWindowsでいうコマンドプロンプトみたいなやつを開いて、フォルダを指定して、catコマンドを打つだけ。
ファイルパスはFinderで開いてフォルダの部分(下の方)を右クリックして、ターミナルを開くをすると一気に行けるので楽です。
cat *.csv > AllData.csv
これにより、フォルダ内のすべてのcsvのデータがAlldata.csvに入る。
(ただこのままだと、1行目とかもそのまま入ってしまうのと、どのファイルが何番目にきてるのかなどがわからない)
ここを参考にしました。
https://note.com/digiholic_life/n/n98f744d65f87
もうちょい変換したらめっちゃ便利にできそう。(今日はここで終わり。いずれ追記する。)
1行目をなくして結合する技
できました。
ファイルを昇順で並び替え
並び替え
ls -1 *.csv | sort
1行目をtougouへ
head -n 1 “$(ls -1 *.csv | sort -n | head -n 1)” > tougou.csv
ヘッダー以外を結合
ls -1 *.csv | sort -n | xargs -I % sh -c ‘tail -n +2 “%” >> tougou.csv’
順にターミナルでやっていきます。
これ何をしてるかというと、1行目なしで結合しています。
ただこのときの結合順が、ファイル名の昇順でそれがMacだと文字コードの関係で謎の順番になります。
なのでその順番を知るために1行目のlsコマンドで昇順並び替え結果を出力し、人間がわかるようにしてます。
その後、2~3行目の結合のコマンドをすると、tougou.csvに結合された結果が出ます。
終わり。
コメント