awk는 두 개의 일치하는 줄을 찾습니다.

awk는 두 개의 일치하는 줄을 찾습니다.

파일에 다음이 포함됨

Today is 1 nice day
This is a perfect day
Tomorrow is 1/2 cool 1/2 hot day
What is Toy Story
Tonight is a dark night


"To"로 시작하고
"day"로 끝나는 줄을 찾는 방법

이 명령 중 어느 것도 작동하지 않습니다

awk '/^To[*]day$/ {print}' file

awk '/^To*day$/   {print}' file

awk '/^To.day$/   {print}' file

awk '/^To[.]day$/ {print}' file

감사해요!

답변1

정규 표현식에서 .모든 문자와 일치하며 *설명할 내용에 첨부된 한정자입니다.0개 이상의 항목. 임의 .*의 수(0개 이상)수치.

따라서 Angelo가 말했듯이 다음과 같이 할 수 있습니다.

awk '/^To.*day$/'

레코드의 시작( ^) 뒤에는 To임의 개수의 문자( .*)가 오고 day레코드의 끝( $)이 옵니다.

또는 다음과 같이 작성할 수 있습니다.

awk '/^To/ && /day$/'

이는 문자가 아닌 문자를 포함하는 To레코드 와도 일치합니다 . 또 다른 차이점은 / 를 / 로 day바꾸면 일치한다는 것입니다 .Todayabccdeabcde

답변2

awk '$0 ~ /^To.*day$/  {print}' file

그렇지 않으면

awk '/^To.*day$/  {print}' file

또는 심지어(기본 작업은 레코드를 인쇄하는 것이므로):

awk '/^To.*day$/' file

관련 정보