Awk
awk/sed 過濾器範例,用於基於其他列中的數據進行列操作
我試圖找到一個範例,說明如果 col 2 和 col 5 中的數據不等於“null”,我可以如何有效地使用 sed 或 awk 來操作特定列(例如 col 1)中的 csv 數據。
未過濾的範例:
未填充,空值,數據,數據,空值,數據 未填充,**數據**,數據,數據,**數據**,數據 未填充,**數據**,數據,數據,空,數據 未填充,空值,數據,數據,空值,數據 未填充,空,數據,數據,**數據**,數據
會成為:
未填充,空值,數據,數據,空值, **已填充**數據,**數據**,數據,數據,**數據**,數據 未填充,**數據**,數據,數據,空,數據 未填充,空值,數據,數據,空值,數據 未填充,空,數據,數據,**數據**,數據
預先感謝您的幫助!
awk 'BEGIN{ FS=OFS="," } $2!="NULL" && $5!="NULL"{$1="POPULATED"}1' infile.csv
FS是輸入欄位分隔符, OFS是輸出欄位分隔符,我們在處理輸入文件之前在 BEGIN NING處都設置為逗號字元。
我們正在檢查這兩個列(column#2
$2
和column#5$5
)是否都不是NULL值)!="NULL"
,然後更新第一列值$1="POPULATED"
,然後在末尾使用idiom1
,輸入行將輸出所有更改。如果您的意思是 NULL 為空列,則只需與空字元串進行比較,如下所示:
awk 'BEGIN{ FS=OFS="," } $2!="" && $5!=""{$1="POPULATED"}1' infile.csv