Algo parecido com isto [atualizado]?
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
Trabalhará também com colunas separadas por espaço.
Eu preciso ler o arquivo (contém 16K linhas) e imprimir a linha inteira se qualquer uma das colunas e todas as colunas contiverem o valor máximo (100) e todas as colunas contiverem o valor mínimo (0) .O exemplo de saída é fornecido
input.txt (delimitado por tabulação)
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
Também pode ser feito em awk
:
awk '$2 ~ /^0$/ && $3 ~ /^0$/ && $4 ~ /^0$/ && $5 ~ /^0$/ || /100/' $file