0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

特定のパッケージを使用しているローカルリポジトリを探す

Last updated at Posted at 2020-12-16

はじめに

この記事は、grepコマンドによる依存パッケージの調査方法についてのメモです。

GitHubのDependabotなど、依存パッケージの脆弱性警告ツールが普及しました。しかしその警告に従い、複数のリポジトリをまたいで依存パッケージを調査するのは骨の折れる作業です。

こうした状況で便利なコマンドがgrepです。grepは多くの環境に移植されていますので、使い方を一度憶えてしまえば役立つ資産となります。

grep

grepは正規表現によりファイルを検索するUNIXコマンドです。

man page of grep

このコマンドを利用すれば、ファイルを横断した本文検索ができます。

使用例1 : 特定の語句を含むファイルを検索する

grep -lr <pattern> --include="package.json" --exclude-dir=node_modules ./*

このコマンドの内容を書き下すと、以下のようになります。

カレントディレクトリ./*以下で、ファイル名package.json<pattern>を含む行を探す。ただしディレクトリnode_modulesは除外する。

使用しているオプションは以下の通りです。

  • -r : ディレクトリを再帰処理(デフォルトではディレクトリ直下のファイルを検索する)
  • -l : ファイル名のみを表示(デフォルトでは該当する行も同時に表示する)

使用例2 : 特定の語句を含まないファイルを検索する

grep -lrL <pattern> --include="package.json" --exclude-dir=node_modules ./*

使用例1に-Lオプションを追加すると、<pattern>文字列を含まないファイルを検索できます。たとえばpackage.jsonにあるべきフィールドが指定されていないプロジェクトを一括で探し当てられます。

参考記事 : 特定の文字列を含まないファイルを検索する

他にも検索パターンやオプションを変更すれば、grepは様々な問題の解決に役立ちます。皆様の問題に合わせてオプションを変更してみてください。

以上、ありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?