コマンドラインで先頭行にCSVヘッダーを追加するテクニック

ヘッダーなしのCSVファイル

$ cat pricelist.csv 
1,ココナッツ,200
2,いちご,300
3,ぶどう,500

CSVテキストファイルの先頭行に、ヘッダーを追加します。

$ sed -i '1iid,name,price' pricelist.csv
$ cat pricelist.csv
id,name,price
1,ココナッツ,200
2,いちご,300
3,ぶどう,500

catコマンドの場合。別ファイルの挿入などに便利です。

CSVコマンドラインツール csvkit

カンマや改行がデータに含まれているCSVファイルの場合、cutやsed,awkコマンドでは処理が困難なので、csvkitをインストールしておくと便利です。cygwin でも動作します。

 

インストール

$ sudo apt-get install python-dev python-pip python-setuptools build-essential
$ sudo pip install csvkit

インストール済みで、アップグレードする場合。

ゼロパディングの方法

固定桁数にするために、数値をゼロ埋めする方法です。

 

printf を使用して、コマンドラインでゼロパディング

# 入力データ
$ cat input.txt
3
200
70
1234
0
# 実行結果
$ cat input.txt | while read line; do printf "%04d\n" $line; done
0003
0200
0070
1234
0000

 

ゼロパディングの正規表現

CMSのインポーターなど printf がない環境で使用します。

for loop 使用例

文字変数の配列

$ for str in Aa Bb Zzz; do echo "string $str"; done
string Aa
string Bb
string Zzz

前ゼロ連番

$ for i in {01..03}; do echo "count $i"; sleep `expr $RANDOM % 5`; done
count 01
count 02
count 03

50おきにカウントして、先頭と末尾を出力。

Tags: 

ページ