$ awk '{ split($(NF-1),a,/\//) } { split($NF,b,/\//) } a[1]/a[2] > 0.01 || b[1]/b[2] > 0.01 { print $1, $2 }' file.in
2L 10000133
2L 10000374
Это разбивает последние два поля по отдельности на символ /
и сохраняет части в двух массивах a
и b
. Если какое-либо из делений при выполнении дает число больше 0,01, выводятся два первых поля.
$NF
— значение последнего поля (столбца )во входной записи (строки ). и $(NF-1)
— предпоследнее значение поля.
Проблема с вашим кодом в том, что вы делаете все в блоке BEGIN
. Этот блок в основном предназначен для инициализации и будет выполняться до того, как какие-либо данные будут фактически считаны. Существует также проблема с выбранным значением FS
, на которое указывают другие ответы.
Вам также не нужно заключать числа в кавычки, когда они используются в качестве чисел.
Это дает мне что-то очень похожее на набор для рисования линий vt100:
$ pstree -g 2 -U|less