grep 명령을 사용하여 두 번째 열에서 검색을 시작하는 방법


0

파일에 다음과 같은 문자열이 포함되어 있습니다.

site1.com,Level1.2
site2.com,Level1.1,Level1.0,Level1.2
site3.com,Level1.2
site4.com,Level1.2,Level1.1,Level1.0,Levelv3
siteLevel1.2,Levelv2
Level1.2,Levelv2

grep단어를 검색하는 데 사용하고 싶습니다 . 나는이 명령을 사용했다 :

grep -w "Level1.2" file1.txt > result.txt 

출력은 다음과 같습니다.

site1.com,Level1.2
site2.com,Level1.1,Level1.0,Level1.2
site3.com,Level1.2
site4.com,Level1.2,Level1.1,Level1.0,Levelv3
Level1.2,Levelv2

그러나 첫 번째 열을 무시하려면 grep이 필요합니다. 출력에 다음이 필요합니다.

site1.com,Level1.2
site2.com,Level1.1,Level1.0,Level1.2
site3.com,Level1.2
site4.com,Level1.2,Level1.1,Level1.0,Levelv3

가능한 한 내 자신의 명령으로 나를 도와주십시오. 나는 새로운 명령과 검색 방법을 선호하지 않습니다. 나는 두 번째 열부터 검색해야한다는 것에 만족합니다.

답변:


0

이것은 관련 질문에 대한 내 대답 의 간단한 수정입니다 .

grep '^[^,]*,.*Level1\.2' myfile.txt

또는 더 간단하게 :

grep ',Level1\.2' myfile.txt

일치 문자열의 앞의 쉼표는 첫 번째 필드의 아무것도 일치하지 않도록합니다.

Level1.20또는 가능성이 Level1.2a있고 이러한 경우를 제외하려면 단어 구분 기호를 추가해야합니다.

grep ',Level1\.2\b' myfile.txt

이러한 경우 중 어느 것도 egrep(또는 grep -E) 필요하지 않습니다 .


0

-P긍정적 인 lookbehind와 함께 옵션 (PCRE)을 사용하십시오 .

grep -Pw "(?<=,)Level1\.2" file.txt

산출:

site1.com,Level1.2
site2.com,Level1.1,Level1.0,Level1.2
site3.com,Level1.2
site4.com,Level1.2,Level1.1,Level1.0,Levelv3
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.