특정 값으로 시작하는 여러 문자열을 grep하는 방법

특정 값으로 시작하는 여러 문자열을 grep하는 방법

두 개의 열과 여러 개의 숫자로 구성된 파일이 있습니다. 두 번째 열이 1.008, 1.009 또는 1.01로 시작하는 행을 검색하고 찾고 싶지만 첫 번째와 두 번째 열을 인쇄하고 싶습니다.

나는 시도했다:

grep -Ev '^1.008|^1.009|^1.01'

하지만 작동하지 않습니다.

답변1

테이블 데이터에서 필드를 검색할 때 awk골든 티켓은 다음과 같습니다.

awk '$2 ~ /^1.0(0[89]|1$)/ { print $1,$2 }' /path/to/inputfile

이렇게 하면 지정한 패턴("다음으로 시작 1.009 or 1.009또는 같음 1.01")이 두 번째 필드에 적용되고 일치하는 경우 첫 번째 및 두 번째 필드가 출력됩니다.

답변2

파일 이름 exercise.txt이 다음과 같다고 가정합니다.

a   1.008  
b   1.00005  
c   1.01  
d   1.01  
e   1.009  
awk '( $2 >= 1.008 && $2 < 1.02 ) { print $1,$2 }' exercise.txt > output.txt

그렇다면 당신은:

$ head output.txt  
a   1.008  
c   1.01  
d   1.01  
e   1.009  

관련 정보