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ですね。
正規表現でマッチしたモノ以外を表示して、マッチしないモノを取り出す方法は、意外と使える。