Я хочу удалить строки, гдевсе ненулевые элементыменьше одного
Мой файл
a 2 0 0 0 9
b 3 0 0 0.7 13
c 0.3 0.5 0 0 0
d 0.4 7.96681779026634e-05 0 0
Ожидаемый результат:
a 2 0 0 0 9
b 3 0 0 0.7 13
Я новичок. Я попробовал awk '{for(i=2;i<=NF;i++){if($i+0=0 print $0; else < 1) next}} 1'
отредактировать предыдущий код, как вэта ссылка, но я делаю что-то не так.
решение1
Пытаться:
$ awk '{f=0; for(i=2;i<=NF;i++) if($i+0!=0 && $i+0>=1)f=1} f' file
a 2 0 0 0 9
b 3 0 0 0.7 13
Код использует переменную f
. Если f
она оказывается истинной (не нулевой), то мы печатаем строку.
f=0
Для каждой строки начните с установки
f
значения false (не печатать)for(i=2;i<=NF;i++) if($i+0!=0 && $i+0>=1)f=1
Если какой-либо элемент не равен нулю и больше единицы, то устанавливается
f
значение1
(истина).f
Если
f
истинно (не ноль), вывести эту строку.