CSVファイルからデータをインポートする方法[閉じる]

CSVファイルからデータをインポートする方法[閉じる]

私の履歴の下に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代わりにシェル比較演算子を使用しようとしていることです。あなたのテキストは、要件を次のように説明します。awkawk<=未満代わりにより小さいか等しいしかし、出力例は後者を示しています。また、30フィールドを値と比較するのではなく、実際に式の両方を取得しました。

最後に、数値比較を実行できるように、カンマで区切られた9番目のフィールドを複数の部分に分割する必要があります。コロン(:)はこの操作に便利な区切り記号です。

awk -F, '{ split($9, c, ":"); if (NR==1 || c[2]+0 <= 30) {print $2} }' user.csv

出力

Project
Orange

おすすめ記事