awk
awk ‘{print }’ имя_файла > имя_файла
Вывести все непустые строки: awk ‘NF’
вывести все строки в которых второе поле больше 0
awk ‘{ if ( $2>0) {print $1 » } }’ имя файла
\x27 — одинарная кавычка (работает не везде одинаково предсказуемо)
кавычки через введение переменных:
awk ‘{print kav $1 kav}’ kav=»‘» имя_файла , эта запись означает подставить в скрипте одинарную кавычку вместо переменной kav
awk ‘{print kav $1 kav}’ kav='»‘ имя_файла , эта запись означает подставить в скрипте двойную кавычку вместо переменное kav
https://www.ibm.com/developerworks/ru/library/l-awk1/
Если необходимо узнать количество строк содержащих определенной значение
awk -F»,» ‘ BEGIN {x=0} { if ($2==0) x=x+1} END { print x }’ имя_файла
-F»,» -разделитель
$2==0 -значение столбца 2 равно нулю
Если необходимо вычислить несколько значений и произвести между ними арифметически действия
awk -F»,» ‘ BEGIN {x=0 ; y=0} { if ($2 == 1) { x=x+1} else { y=y+1 } } END { print y/x } ‘ имя_файла
Если необходимо вычислить доли в которых соотносятся количества значений х относительно значений у, то можно сделать так:
awk -F»,» ‘ BEGIN {x=0 ; y=0} { if ($2 == 1) { x=x+1} else { y=y+1 } } END { print «x=»x» y=»y » x(1)%=»(100x)/(x+y)» y%=»(100y)/(x+y) } ‘ имя_файла
Если необходимо вычислить доли в которых соотносятся количества значений х относительно значений у и при этом не учитывать первое порядковое значение y , то можно сделать так:
awk -F»,» ‘ BEGIN {x=0 ; y=0} { if ($2 == 0) { x=x+1} else { y=y+1 } } END { print «x=»x» y=»y-1 » x%=»(100x)/(x+y-1)» y%=»(100(y-1))/(x+y-1) } ‘ имя_файла