从CSV提取列,并检查列长度bash



我有一个多个CSV文件(68个文件)排就像

2#21231#132#1231132#26#123#0#1#81#44123#A#1236#123#

我想检查每行11列的长度是否等于208。我想计算列11的行数等于208(count = count = count 1)

我尝试了脚本波纹管,但我得到的计数总是0

#!/bin/bash
date
ext='.UTF'
c=0
LIMIT=208
FILES=//DOC/*
for f in $FILES
do filename=$(echo $f| cut -d'/' -f 10)
   awk 'BEGIN{FS=OFS="#"}
   {  for(i=11;i<12;i++){
         if (length($i) -eq LIMIT);
         then let "c += 1";
         print ''length($i);
         fi
        }
   }  $i 1' $f
done
echo 'count == c'$c

预先感谢

$ awk -F'#' 'length($11)==208 {c++} END { print c+0 }' *.csv

您想要这样的东西吗?

awk -F'#' '{c+=(length($11)==208?1:0)}END{printf "count=%dn",c}' *.csv

最新更新