같은 줄에 있는 두 단어를 찾기 위해 grep(또는 egrep)을 사용하고 싶습니다. 온타리오와 월요일
Flight# Airline Depart Arrive Day
------------------------------------------
93104 TEAM ONT LAX MONDAY
62876 GE NYC ONT THURSDAY
30118 LOGI ONT PHX FRIDAY
12033 F LAX PHX MONDAY
40990 ACTI PHX ONT MONDAY
92377 EA ONT PHX SUNDAY
다양한 명령을 시도했지만 항공편 #93104가 포함된 행 대신 MONDAY 또는 ONT가 포함된 모든 행이 반환됩니다.
답변1
가능한:
grep "ONT.*MONDAY" file
답변2
ONT
세 번째 열에서 해당 단어를 찾을 수 있고, MONDAY
다섯 번째 열에서 해당 단어를 찾을 수 있다는 것을 알고 있는 경우 :
$ awk '$3 == "ONT" && $5 == "MONDAY"' file
93104 TEAM ONT LAX MONDAY
이는 공백이 포함되지 않은 열의 값에 따라 달라집니다. 위 명령은 awk
원하는 단어를 문자열로 비교하여 3열과 5열의 값을 테스트하고 테스트를 통과한 모든 행을 출력합니다.
ONT
세 번째 또는 네 번째 열과 MONDAY
다섯 번째 열을 일치시키려면 다음을 수행하십시오 .
$ awk '($3 == "ONT" || $4 == "ONT") && $5 == "MONDAY"' file
93104 TEAM ONT LAX MONDAY
40990 ACTI PHX ONT MONDAY
를 사용한 경우 grep
두 단어가 일치하는지 확인할 수 없습니다.완전한 단어또는올바른 열(정규식을 너무 복잡하게 만들지 않는 한)