私の履歴の下にCSVファイルがあります。 awk条件によってStatus Column値が30未満の場合は、対応するProject(Column1)値Orangeを出力しなければならない。
awk -F'[,]' '{ if ( 30 >= 30 ) {print $2,$9} }' user.csv
電流出力
Project Status
Apple "Current (days remaining : 83)"
Orange"Current (days remaining : 30)"
期待される出力
Project
Orange
ID,Project,"App System",Version,"Report Date",Status
1,Apple,NAT,0,0,0,0,09/02/2022,"Current (days remaining : 83)"
2,Orange,BAT,0,0,0,0,09/02/2022,"Current (days remaining : 30)"
誰でもこの問題を解決するのに役立ちますか?
ベストアンサー1
問題は、自分の.NET比較演算子の-le
代わりにシェル比較演算子を使用しようとしていることです。あなたのテキストは、要件を次のように説明します。awk
awk
<=
未満代わりにより小さいか等しいしかし、出力例は後者を示しています。また、30
フィールドを値と比較するのではなく、実際に式の両方を取得しました。
最後に、数値比較を実行できるように、カンマで区切られた9番目のフィールドを複数の部分に分割する必要があります。コロン(:
)はこの操作に便利な区切り記号です。
awk -F, '{ split($9, c, ":"); if (NR==1 || c[2]+0 <= 30) {print $2} }' user.csv
出力
Project
Orange