Intereting Posts
nginx не запускается: getpwnam ("nginx") не удалось выполнить в /etc/nginx/nginx.conf:5 Почему сбой VirtualBox при завершении установки BackTrack? Псевдоним для перемещения файлов и последующего их назначения Firefox в Linux не интерпретирует 12px Arial правильно, но 1 или 0,9 Как объединить два логических тома, которые находятся на одном физическом томе в LVM? Почему bash не расширяет эту переменную, если я префикс команды с назначением одноразовой переменной Как удалить Блокнот из списка приложений? клавиатурные жесткие клавиши переназначения? rpm и deb fileformat блокируются моим провайдером. Как установить программное обеспечение? Beaglebone Black не может отправлять сырые пакеты UDP с Python на ноутбук под управлением Ubuntu 16.04 Безопасно ли удалять файлы / var / log? Звуковой проигрыватель Deadbeef не извлекает информацию в Интернете (freedb, CDDB) о дорожках CD остановка жесткого диска на Asus EEE 1015PX (и других eee's) Как удалить gnome-extra? Правильная установка драйвера Wifi с исправлениями от Github

Строка печати содержит максимальное и минимальное значение

Мне нужно прочитать файл (содержит строки 16K) и распечатать всю строку, если какой-либо из столбцов и всех столбцов содержит максимальное значение (100), а все столбцы содержат значение min (0).

input.txt (с разделителями табуляции)

Id sno1 sno2 sno3 sno4 E1 98 100 88 78 E2 33 99 78 66 E3 0 0 100 56 E4 0 0 0 0 E5 45 55 65 100 E6 0 0 99 88 E7 100 100 100 100 

Ouput.txt

 E1 98 100 88 78 E3 0 0 100 56 E4 0 0 0 0 E5 45 55 65 100 E7 100 100 100 100 

Что-то вроде этого [обновлено]?

 perl -n -e 'if (/^\S+\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/) { print if $1==100||$2==100||$3==100||$4==100||($1==0&&$2==0&&$3==0&&$4==0) }' input.txt 

Будет работать и с разделителями, разделенными пробелами.

Также может быть сделано в awk :

 awk '$2 ~ /^0$/ && $3 ~ /^0$/ && $4 ~ /^0$/ && $5 ~ /^0$/ || /100/' $file