LinuxコマンドでCSVファイルを作成する

今回はCSVファイルをLinuxコマンドを使って作成しようと思います。

CSVファイルは、PHPやJavaScriptでも作って出力できると思いますが、今回は既存のExcel資料からCSVファイルを作りたいと思います。

単純にマクロを作ってCSVにすればいいじゃないかと思いますが、それだとマクロの学習時間が自分の場合は高くなりそうだったので、今回は、割と好きなLinuxコマンドを使って挑戦しようと思います。

やりたいこととしては、EC-CUBEに取引先から共有していただいたExcelファイルの内容を反映したいが目的になります。

A.xlsxのファイルを読み込んでB.csvのファイルを作成する

#!/bin/bash

# A.xlsxをCSV形式に変換
xlsx2csv A.xlsx a_temp.csv

# awkを使用して必要な列を取得・加工し、B.csvに出力
awk -F, 'NR==1 {print "id,name,company"} NR>1 {print $1","$2$3","$4}' a_temp.csv > B.csv

# 一時ファイルを削除
rm a_temp.csv

printでヘッダーを定義してます。

自分はMacを使っているので「brew install xlsx2csv」でインストールをしようとしましたがダメだったのでPython3でインストールしました。

「pip3 install xlsx2csv」

そのあとでパスを追加しました。

「export PATH="$PATH:/Users/〔ユーザー名〕/Library/Python/3.9/bin"」

コメントを残す

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