파일(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
출력.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
답변1
[업데이트] 이런 게 있나요?
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
공백으로 구분된 열에서도 작동합니다.
답변2
다음 장소에서도 가능합니다 awk
:
awk '$2 ~ /^0$/ && $3 ~ /^0$/ && $4 ~ /^0$/ && $5 ~ /^0$/ || /100/' $file