Фильтрация файла по переменной с помощью команды awk - PullRequest
0 голосов
/ 19 октября 2019

Я беру входной файл и сохраняю его в fn, и я создал массив, в котором хранятся значения, которые я буду использовать при фильтрации.

nawk -v api=$line '{ if ( match($11,api)) print $11   }' $fn > /tmp/outputfile.txt

Я пробовал эту команду, но она не сохраняет никакого значенияв outputfile.txt

#!/bin/bash
fn=$1
apis=(/rest/V1/productlist/brand /rest/V1/brand/filter /rest/V1/localsearch /rest/V1/productlist/celebrity /rest/V1/celebrityfilter /rest/V1/category/filter /rest/V1/homepicksall /rest/V1/brandproductcollection /rest/V1/productlist/category)
for line in ${apis[*])}
do
        printf "API     %s\n" $line

#       awk -v var="$api"  '/$var/ { print $11 | "sort -n"}' $fn /tmp/outputfile.txt
#nawk -v errr=$line '{ if ( match($0,errr) ) print $0 }' $infile >> $outfile
        nawk -v api=$line '{ if ( match($11,api)) print $11   }' $fn > /tmp/outputfile.txt
        awk 'BEGIN{a=0}{if ($1>0+a) a=$1} END{print "Max: " a}' /tmp/outputfile.txt
        awk 'BEGIN{a=1000}{if ($1<0+a) a=$1} END{print "Min: " a}' /tmp/outputfile.txt
        awk '{sum+=$1;i=i+1} END  { print  "Avg: " sum/i}' /tmp/outputfile.txt
        awk 'BEGIN{i=0} {s[i]=$1; i++;} END{print "95%: " s[int(i*0.95-0.5)]}' /tmp/outputfile.txt
        awk 'BEGIN{i=0} {s[i]=$1; i++;} END{print "99%: " s[int(i*0.99-0.5)]}' /tmp/outputfile.txt
done

Что я здесь не так делаю?

Пожалуйста, помогите мне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...