我有一个 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
这将删除尾随空格,并且仅在第三个字段中剩余内容时才打印。
答案4
使用 GNU awk
:
awk -F, '$3' input_file