Длина определенного поля и отображение записи гораздо проще - PullRequest
0 голосов
/ 20 октября 2011

Моя цель - узнать длину второго поля, и если длина превышает пять символов, то мне нужно показать всю запись, используя сценарии / команду оболочки.

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 ]

3 голосов
/ 20 октября 2011
awk -F, 'length($2)>5' file

это должно работать

обновлен

 awk -F, '{a=$0;gsub(/ /,"",$2);if(length($2)>5)print a}' file
1 голос
/ 20 октября 2011
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   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...