特定の文字列が含まれる行を抽出する機会があったため忘備録として記録に残そうと思います。
想定データ
下記のデータを想定します。
ファイル名:test.csv
aaa,2024-06-01,bbb,ccc
ddd,2024-06-02,eee,fff
ggg,2024-07-01,hhh,iii
jjj,2024-07-02,kkk,lll
mmm,2024-08-01,nnn,ooo
ppp,2024-08-02,qqq,rrr
実行するコマンド
grep -i "特定の文字列" ファイル名
上記に具体的な文字列、ファイル名を書くと以下になります。
grep -i "2024-06" test.csv
実行結果は以下のように、test.csvファイルの中で「2024-06」が含まれる行を表示します。
$ grep -i "2024-06" test.csv
aaa,2024-06-01,bbb,ccc
ddd,2024-06-02,eee,fff
オプション -e を追加
オプションに-e
を加えることで、複数の文字列を指定できます。
$ grep -i -e "2024-06" -e "2024-07" test.csv
aaa,2024-06-01,bbb,ccc
ddd,2024-06-02,eee,fff
ggg,2024-07-01,hhh,iii
jjj,2024-07-02,kkk,lll
オプション -c を追加
オプションに-c
を加えることで行数を表示することができます。
$ grep -ic "2024-06" test.csv
2
出力先にファイルを指定
出力先をファイルに指定すると、特定の文字列が含まれる行のみのファイルが作成できます。
$ grep -i "2024-06" test.csv > test_202406.csv
$ cat test_202406.csv
aaa,2024-06-01,bbb,ccc
ddd,2024-06-02,eee,fff
参考資料
告知
最後にお知らせとなりますが、イーディーエーでは一緒に働くエンジニアを
募集しております。詳しくは採用情報ページをご確認ください。
みなさまからのご応募をお待ちしております。