カンマ区切りファイルの各行には5つのフィールドがあります。
a,b,c,d,e
f,g,c,i,
j,k,c,m,n
o,p,c,r,s
t,u,c,w,
x,y,z,aa,bb
3番目のフィールドにcがあり、5番目のフィールドが空でない行を抽出する方法は?結果は次のとおりです。
a,b,c,d,e
j,k,c,m,n
o,p,c,r,s
ベストアンサー1
考えられる解決策awk
:
awk -F',' '$3 == "c" && $5' file
実際のデータによっては、コメントに記載されているとおりに動作しない場合があります(これを指摘したJanisに感謝します。f,g,c,i,0
たとえば、5番目のフィールドが0の場合は欠落する可能性があります)。したがって、次のことができます。
awk -F',' '$3 == "c" && $5 != ""' file
これは許容される答えなので、文字列に5番目のフィールドを強制するあまり明確ではない方法を追加します(cuonglm(+ 1)ソリューションに示されているように)。
awk -F',' '$3 == "c" && $5""' file