7/20/2017 17:00
たとえば、6番目の列にリストされている日付形式の.csvファイルを考えてみましょう。
入力を指定したら、一致する入力7/11/2017
日付で列をフィルタリングし、出力を別の.csvファイルに保存する必要があります。
与えられた入力に基づいて6番目の列をフィルタリングするコマンドが必要です。
file.csvには次のエントリがあります。
23,54,one,tree,56,7/20/2017 17:00,23,iii,89
23,54,one,tree,56,7/20/2017 17:00,23,iii,89
23,54,one,tree,56,7/21/2017 17:00,23,iii,89
23,54,one,tree,56,7/30/2017 17:00,23,iii,89
同様に、6番目の列には複数の日付と時刻の形式の項目があります。実行時に入力(読み取りなど)が与えられたら、7/20/2017
列6の日付をフィルタリングし、出力項目を別の.csvファイルに保存する必要があります。
答え1
簡単にアッ:
awk -F, -v d="7/20/2017" '$6~d' input.csv > dates.csv
コンテンツdates.csv
:
23,54,one,tree,56,7/20/2017 17:00,23,iii,89
23,54,one,tree,56,7/20/2017 17:00,23,iii,89
日付値がシェル変数から来る場合:
d="7/20/2017"
awk -F, -v d="$d" '$6~d' input.csv > dates.csv
答え2
次の形式の日付を含む列が1つしかないとします。
$ grep -F '7/20/2017' file.csv
23,54,one,tree,56,7/20/2017 17:00,23,iii,89
23,54,one,tree,56,7/20/2017 17:00,23,iii,89
新しいファイルにリダイレクトできます。
$ grep -F '7/20/2017' file.csv >new.csv
CSVファイルを正しく解析するには、組み込みのCSVパーサーを使用してください。CSVkitツール:
$ csvgrep -c 6 -m '7/20/2017' file.csv
23,54,one,tree,56,7/20/2017 17:00,23,iii,89
23,54,one,tree,56,7/20/2017 17:00,23,iii,89