Linux の Grep および Cut コマンド

Linux の Grep および Cut コマンド

大量のデータを含む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以上の行のみを印刷するように指示します。

おすすめ記事