다음 내용으로 파일(testimdb)을 만들었습니다.
film: heat. year: 1995. director: michael mann. actors: al pacino, robert de niro, val kilmer film: the godfather part ii. year: 1974. director: francis coppola. actors: al pacino, robert de niro, diane keaton, robert duvall film: casino. year: 1995. director: martin scorsese. actors: robert de niro, sharon stone, joe pesci film: carlito's way. year: 1993. director: brian de palma. actors: al pacino, sean penn
Pacino와 De Niro가 주연을 맡은 모든 영화를 grep할 수 있습니다(grep 'pacino\|de niro' /root/testimdb). 이렇게 하면 이름이 포함된 모든 영화가 표시됩니다.
그러나 두 사람이 모두 출연하지 않는 영화, 즉 같은 영화에 함께 출연하는 영화는 제외하고 싶습니다. 따라서 위의 grep 검색 예는 동일한 영화(The Heat, The Godfather Part II)의 두 스타가 포함된 결과를 올바르게 반환하고 두 스타가 서로를 쳐다보지 않는 영화도 검색하기 때문에 나에게 적합하지 않습니다. 의 결과. 예를 들어, "Casino"에는 De Niro가 출연했지만 Pacino는 출연하지 않았습니다. "Carlito's Way"에는 De Niro가 아닌 Pacino만 출연했습니다.
Pacino와 De Niro가 공동 주연을 맡은 영화에 대한 결과만 표시하고 다른 모든 결과는 무시하도록 grep을 얻으려면 어떻게 해야 합니까?
고마워요, 데이브
답변1
grep
이 작업은 다음과 같은 파이프라인을 통해 수행할 수 있습니다 grep
(물론 더 효율적인 방법이 있다고 확신합니다).
grep 'de niro' testimdb | grep 'pacino'
다음에서 확장 정규식을 사용하세요 grep
.
grep -E 'de niro.*pacino|pacino.*de niro' testimdb