필드에서 특정 문자열 선택

필드에서 특정 문자열 선택

나는 이 파일을 가지고 있습니다 :

N104    F1810
N104    F3810
N104    F810
N104    F305

그리고 grep입력 스크립트.

스크립트:

enter input
read input
cat file | grep $input

"810"을 입력하면 다음과 같이 출력됩니다.

N104    F1810
N104    F3810
N104    F810

다음을 출력해야 합니다.

N104  F810

답변1

grep -E "(^|[^0-9])$input($|[^0-9])" < file

앞의 것은 $input줄의 시작이거나 숫자가 아닌 것이고, 다음의 것은 줄의 끝이거나 숫자가 아닌 것입니다.

답변2

다음 과 같이 할 수도 있습니다 grep.

$ grep "[[:alpha:]]810" sample.txt 
N104    F810

보다 구체적으로 사용 사례는 다음과 같습니다.

$ input=810
$ grep "[[:alpha:]]$input" < sample.txt 
N104    F810

grep모드가 첫 번째 열도 처리할 수 있을 것으로 기대하는지, 그렇다면 어떤 용량을 처리할 수 있을지 모르겠습니다 .

$ input=104
$ grep "[[:alpha:]]$input" < sample.txt 
N104    F1810
N104    F3810
N104    F810
N104    F305

grep이는 알파벳 문자 집합을 활용합니다 . 무엇을 요구하는지 확실하지 않지만 이렇게 하면 두 번째 열에서 뒤에 오는 숫자를 검색할 수 있습니다. 보다 강력한 솔루션이 필요한 경우 정규식을 변경해야 할 수도 있습니다.

인용하다

관련 정보