CSVの行をフィルタリングして新しいCSVファイルに保存する

CSVの行をフィルタリングして新しいCSVファイルに保存する

csvファイルを1行ずつフィルタリングし、if条件を満たす行を選択したいと思います。

csvファイルはカンマで区切られているため、コードは次のようになります。

'BEGIN {FS=','}
{while read line 
if (condition) 
   save selected line to a new csv file
} done < file.csv'

条件が満たされたら、選択した行を新しいcsvファイルに保存する方法は?誰でもいくつかの例を提供できますか?

ベストアンサー1

awkこのようにしてください

awk -F, '(condition) { print >"to_new.csv"}' file.csv

フィールドを区切る-F,カンマ区切り文字を指定します。,もし状況あなたの基準と一致する場合は、行をto_new.csv

我々は使用したシングル" >"リダイレクトここで。このタイプのリダイレクトを使用する場合to_new.csv最初の出力が書き込まれる前にクリアされます。以降の書き込みは同じです。to_new.csvファイルを削除せずに追加してください。 (これはシェルスクリプトでリダイレクトを使用するのとは異なります。)to_new.csv存在せずに生成されます。

または、単に次のように書いてください。

awk -F, 'condition' file.csv > to_new.csv

おすすめ記事