次のCSVファイルがあります。
CK,ck
XYZ,xyz,xyzs
ABC,abc,abcs
PQR,pqr,pqrs
LMN,lmn,
IJK,ijk,
列3にスペース以外の内容が記録されていることを確認してから、行全体を表示する必要があります。出力は次のとおりです。
XYZ,xyz,xyzs
ABC,abc,abcs
PQR,pqr,pqrs
答え1
離れてsed
いる:
sed -n '/[^,]*,[^,]*,[^, ]\+/p' file
またはgrep
解決策:
grep -oE '^[^,]*,[^,]*,[^, ]+' file
そしてawk
:
awk -F, '$3 ~ /[^, ]+/' file
答え2
努力する:
$ awk -F, '$3 && $3 != " "' file
XYZ,xyz,xyzs
ABC,abc,abcs
PQR,pqr,pqrs
または:
$ awk -F, '$3 ~ /[^[:blank:]]/' file
答え3
awkでは、次のことができます。
awk -F',' '{gsub(/[ \t]+$/,"",$3)}$3' foo.csv
これにより、末尾のスペースが削除され、3番目のフィールドに内容が残っている場合にのみ印刷されます。
答え4
GNUの使用awk
:
awk -F, '$3' input_file