패턴 다음에 숫자를 찾아 숫자가 x보다 큰 경우 파일로 인쇄하는 방법,

패턴 다음에 숫자를 찾아 숫자가 x보다 큰 경우 파일로 인쇄하는 방법,

다음과 같은 파일이 있습니다.

Thispeculiarpattern(1.00);thatpeculiarpattern(0.90);....
Thispeculiarpattern(0.73);thatpeculiarpattern(0.15);...................

Somerandomtext(0.81); somemorerandomtext(0.79):.................................
Somerandomtext(0.62); somemorerandomtext(0.04):..............
Herewegoagain(0.93);Herewegoyetagain(0.48);....
Herewegoagain(0.71);Herewegoyetagain(0.87);....

나는 다음과 같은 출력을 원합니다 :

Thispeculiarpattern(1.00);thatpeculiarpattern(0.90);....
Somerandomtext(0.81); somemorerandomtext(0.79):....
Herewegoagain(0.71);Herewegoyetagain(0.87);....

즉, "Thispeculiarpattern", "Somerandomtext" 또는 "Herewegoyetagain"이 포함된 경우 모든 줄을 파일로 출력하고 싶고 그 뒤에는 0.8 이상의 값을 갖는 괄호가 와야 합니다.

답변1

모든 숫자가 고정 소수점 십진수라고 가정합니다(예제 참조).

grep 사용

$ grep -E '(Thispeculiarpattern|Somerandomtext|Herewegoyetagain)\(([1-9]|0\.[89])' file
Thispeculiarpattern(1.00);thatpeculiarpattern(0.90);....
Somerandomtext(0.81); somemorerandomtext(0.79):.................................
Herewegoagain(0.71);Herewegoyetagain(0.87);....

sed 사용

$ sed -En '/(Thispeculiarpattern|Somerandomtext|Herewegoyetagain)\(([1-9]|0\.[89])/p' file
Thispeculiarpattern(1.00);thatpeculiarpattern(0.90);....
Somerandomtext(0.81); somemorerandomtext(0.79):.................................
Herewegoagain(0.71);Herewegoyetagain(0.87);....

awk를 사용하세요

$ awk '/(Thispeculiarpattern|Somerandomtext|Herewegoyetagain)\(([1-9]|0\.[89])/' file
Thispeculiarpattern(1.00);thatpeculiarpattern(0.90);....
Somerandomtext(0.81); somemorerandomtext(0.79):.................................
Herewegoagain(0.71);Herewegoyetagain(0.87);....

어떻게 작동하나요?

모든 경우에 정규식과 일치하는 줄을 찾습니다.

(Thispeculiarpattern|Somerandomtext|Herewegoyetagain)\(([1-9]|0\.[89])

이 정규식은 두 부분으로 나뉩니다. 첫 번째는 다음과 같습니다

(Thispeculiarpattern|Somerandomtext|Herewegoyetagain)\(

위의 내용은 세 개의 문자열 중 하나와 일치하고 그 뒤에 (.

두 번째 부분은 다음과 같습니다.

([1-9]|0\.[89])

1부터 9까지의 숫자로 시작하는 모든 숫자와 일치합니다.또는0.8또는로 시작하는 숫자0.9

관련 정보