sed – 打印行包含最大值和最小值

我需要读取文件(包含16K行)并打印整行,如果任何列和所有列都包含最大值(100)并且所有列都包含最小值(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

也适用于空格分隔的列.

转载注明原文:sed – 打印行包含最大值和最小值 - 代码日志