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?

grep とxargs で影響調査

Posted at

はじめに

あるテーブルのカラムが不要になったので、除却したーい!
けど、利用している機能がわからない。

カラム名でGREPすれば一発だ!って思ってGREPしたら、カラム名が汎用的な名前でたくさん抽出されてしまった。

ほしいのは、Aテーブルのカラム だけなのに。

そんな時に grep と xargs を使って調査したのでそのやり方を残します。

前提

SQLをファイルに記載している

やりかた

テーブル名でGREPして、さらにカラム名でGREPする。

grep -irEl --include='*.対象ファイルの拡張子' 'テーブル名' . | xargs --no-run-if-empty grep -irEl 'カラム名'

grepコマンドのオプション
i:大文字小文字区別しない
r:サブディレクトリも検索
E:正規表現を使いたい
|:ファイルパスだけ表示
--include:特定の拡張子だけ検索

xargsコマンドのオプション
--no-run-if-empty:1個目のGREP結果が存在する場合は実行。存在しない場合は実行しない。

仕組み

1個目のGREPで、テーブル名を使用しているファイル一覧を抽出
2個目のGREPで、カラム名を使用しているか?を判定

注意点

あくまでも1ファイル内で、テーブル名とカラム名を含むファイルを抽出しているだけなので、別のテーブルの同名カラム名で抽出している恐れがある。

このため、目検のチェックは必要。

だが、対象をだいぶ絞り込めるのでお勧めです。

補足

Windowsの場合は、Git Bash を使えばよい。

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?