それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

grepで逆検索 (マッチするモノを除外)でマッチしないものを探す

grep を使っていると、「マッチしないもの」が欲しいときがある。

マッチする文字列を除外する

grep -v マッチさせる除外したい文字列
動作例

はてな のトップページから href を抜き出して、絶対URL( http://で始まる )を捨てて、絶対パス(/ で始まる。)だけにした。

takuya@pc7:~$ curl http://www.hatena.ne.jp | grep href | grep -v http | tail -n 20

<link rel="stylesheet" href="/css/simple-header.css" type="text/css" media="all">
<link rel="stylesheet" href="/css/portal-top.css?2010022217" type="text/css" media="all">
<link rel="stylesheet" href="/css/simple-header.css?20081229" type="text/css" media="all">
          <a href="/"><img src="/images/logo_portal_hatena.gif" title="はてな" alt="はてな" class="logo csschanger"></a>
          <li><a href="/help/link">ヘルプ</a></li>
      <h1 id="catch"><a href="/what"><img src="/images/catch_btn_what.gif" class="catch-btn csschanger" 
        <div class="box-title"><a href="/lineup">サービス紹介</a></div>
        <li><a href="/company/">会社情報</a></li>
        <li><a href="/company/staff">求人情報</a></li>
        <li><a href="/company/staff/intern">インターン</a></li>
        <li><a href="/rule/rule">利用規約</a></li>
        <li><a href="/rule/privacypolicy">プライバシーポリシー</a></li>
        <li><a href="/help/link">ヘルプ・お問い合わせ</a></li>
        <li><a href="/lineup">サービスラインナップ</a></li>
        <li><a href="/tool/">便利なツール</a></li>
        <li><a href="/info/hatenaparka">はてなグッズ・アイテム紹介</a></li>
        <li><a href="/maintenance">障害情報</a></li>
takuya@pc7:~$

うん。意外と便利です。Grepでノンマッチだけに限定する方法はこれでOKですね。
正規表現でマッチしたモノ以外を表示して、マッチしないモノを取り出す方法は、意外と使える。