Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2866

シェルスクリプトでCSVファイルを1行ずつ読み込んで処理する

$
0
0

実現したいこと

・シェルスクリプトでCSVファイルを1行ずつ読み込む
・各行のカラムを取り出して処理する
・処理結果を別のCSVファイルとして出力する

具体的な要件

・以下のようなCSVファイル(input.csv)を読み込む

1,hoge,hoge,unko
2,hoge,hoge,hoge
3,hoge,hoge,hoge
4,hoge,hoge,unko
5,hoge,hoge,hoge
6,hoge,hoge,hoge
7,hoge,hoge,unko
8,hoge,hoge,hoge
9,hoge,hoge,hoge
10,hoge,hoge,unko

・4カラム目が「unko」である行のみ取り出し、別ファイル(output.csv)に出力する

実装例

#!/bin/bashINPUTFILE="/tmp/input.csv"OUTPUTFILE="/tmp/output.csv"# ファイルを読み込むwhile read-r LINE
do# 読み込み行の4カラム目の値を取り出すFOURTHCOLUMN=$(echo"${LINE}" | cut-d','-f4)# カラムの値が「unko」である場合、出力ファイルに書き込むif["${FOURTHCOLUMN}"="unko"];then
    echo"${LINE}">>"${OUTPUTFILE}"fi
done< "${INPUTFILE}"

このスクリプトを実行すると以下の出力ファイルが得られます。

output.csv
1,hoge,hoge,unko
4,hoge,hoge,unko
7,hoge,hoge,unko
10,hoge,hoge,unko

Viewing all articles
Browse latest Browse all 2866

Trending Articles