具有多个logging的csv文件由|分隔 。
field1|field2|field3|field4|field5
我想检查,如果field3是空白或只包含“空格”字符。 如果是空白或空格,则应显示整行。
$ echo "1|2||4" | awk -F'|' '$3 ~ /^[ \t]*$/ {print $0}' 1|2||4 $ echo "1|2| |4" | awk -F'|' '$3 ~ /^[ \t]*$/ {print $0}' 1|2| |4 $ echo "1|2| 3|4" | awk -F'|' '$3 ~ /^[ \t]*$/ {print $0}'
您也可以使用cut命令来提取第三个字段,然后testing值:
$ echo "field1|field2|field3|field4|field5" | cut -d '|' -f 3 field3
我使用grep随机尝试将是:
grep -E '^[^|]*\|[^|]*\| *[^| ]+ *\|' file
我不确定unix,但在Linux中,你会想使用sed命令。
sed's / || / \ n / g'将会使得如果有空白字段,它会添加一个新行。 不确定如何得到它只检查第三场。 sed's / | | / \ n / g'只能用于空格。
使用Perl:
perl -F'\|' -lane 'print if $F[2] !~ /\S/' file
-a打开autosplit模式,将字段分成数组@F
-F'\|' 将字段分隔符设置为|
$F[2]是第三个字段
!~ /\S/testing非空格字符(或空)