他の列のデータに基づいて列を操作するためのawk / sedフィルタの例

他の列のデータに基づいて列を操作するためのawk / sedフィルタの例

列2と5のデータが「null」と等しくない場合は、sedまたはawkを効率的に使用して特定の列(列1など)のcsvデータを操作する方法の例を見つけようとします。

フィルタリングされていない例:

埋められていない、空、データ、データ、空、データ
無人島、データ、データ、データ、データ,データ
無人島、データ、データ、データ、空、データ
埋められていない、空、データ、データ、空、データ
埋められない、空、データ、データ、データ,データ

になります:

埋められていない、空、データ、データ、空、データ
人口が密集したデータ、データ、データ、データ,データ
無人島、データ、データ、データ、空、データ
埋められていない、空、データ、データ、空、データ
埋められない、空、データ、データ、データ,データ
助けてくれてありがとう!

ベストアンサー1

awk 'BEGIN{ FS=OFS="," }
$2!="NULL" && $5!="NULL"{$1="POPULATED"}1' infile.csv

FSは入力です。F生産するS区切り記号とOFS酸素出力F生産するS区切り文字、両方ともコンマ文字で設定します。スタート入力ファイルを処理する前にNINGを実行してください。

私たちはこれら2つの列(column#2$2とcolumn#5 $5)を持っています無効値)!="NULL"最初の列の値を更新して$1="POPULATED"からイディオム1最後に、すべての変更が適用された入力行が出力されます。

空の列に対してNULLを意味する場合は、次のように空の文字列と比較してください。

awk 'BEGIN{ FS=OFS="," }
$2!="" && $5!=""{$1="POPULATED"}1' infile.csv

おすすめ記事