特定字段的长度,并以更容易的方式显示记录

时间:2011-10-20 14:52:56

标签: bash shell unix

我的目标是找出第二个字段的长度,如果长度超过五个字符,那么我需要使用shell脚本/命令显示整个记录。

echo "From the csv file"
cat latency.csv  |
while read line
do
        latency=`echo $line | cut -d"," -f2 | tr -d " "`
        length=$(echo ${#latency})
        if [ $length -gt 5 ]
        then
                echo $line
        fi
done

我的代码没有任何问题,但是作为UNIX / Linux,我认为应该有一种更简单的方法来做这些事情。

有一种这样简单的方法吗?

2 个答案:

答案 0 :(得分:3)

awk -F, 'length($2)>5' file

这应该有效

<强>更新

 awk -F, '{a=$0;gsub(/ /,"",$2);if(length($2)>5)print a}' file

答案 1 :(得分:1)

awk -F, '{
  t = $2
  gsub(/ /, x, t)
  if (length(t) > 5)
    print
  }' latency.csv

或者:

perl -F, -ane'
  print if 
    $F[1] =~ tr/ //dc > 5
  ' latency.csv