大量のデータを含むCSVファイルがあります。 >=1 値で列 9 を切り取り、次に grep を使用して完全に一致する行を表示したいと思います。
サンプル形式:
ABC,XYZ,RTY,CREAM,FRANCE,170019,ST REMY CREME,3035540005229,0.75,1,15,26.99,10
ABC,RDS,XSD,SPICE,NETHERLANDS,390476,THE KINGS GINGER,5010493025621,1.5,1,41,49.95,NA
ABC,RMS,DKS,TABLE WINE RED,CHILE,400176,SANTA ISABELA,63657001349,3,1,12.5,31.99,0
私は前に試しました
grep . Myfile.csv |cut -d"," -f9 | sort |grep -E "^(1*[1-9][2-9]*(\.[2-9]+)?|1+\.[2-9]*[1-9][2-9]*)$"
ただし、すべての列を含む行全体ではなく、9番目の列値のみが表示されます。
そして
grep $(cut -d"," -f9 Myfile.csv | grep -E "^(1*[1-9][2-9]*(\.[2-9]+)?|1+\.[2-9]*[1-9][2-9]*)$") Myfile.csv
どんな助けでもいいでしょう。
PS: awk(:- は使用できません。
ベストアンサー1
不可能であるというあなたの声明にもかかわらずawk
- 完全性のために:
awk -F',' '$9>=1' input.csv
これはawk
フィールド区切り文字として扱われ,
、フィールド9の値が1以上の行のみを印刷するように指示します。