次の内容でファイル(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)の2つの星を含む結果を正しく返し、2つの星がお互いを見ていない映画も検索するため、私には適していません。の結果。例えば、「カジノ」にはデニロが出演したが、パシノは出演しなかった。 「Carlito's Way」にはデニロではなくパシノだけが出演しました。
PacinoとDe Niroが共演した映画の結果のみを表示し、他のすべての結果を無視するようにgrepを取得するにはどうすればよいですか?
ありがとう、デイブ
答え1
grep
これは、次のパイプラインを介して実行できますgrep
(もちろん、より効率的な方法があると確信しています)。
grep 'de niro' testimdb | grep 'pacino'
以下では、拡張正規表現を使用してくださいgrep
。
grep -E 'de niro.*pacino|pacino.*de niro' testimdb