[Unix/ワンライナー] 使われていない画像ファイルの一覧を取得したい。

## 用途 やりたいこと - あるディレクトリに画像ファイルがおいてある(hoge.png, foo.png, ... etc) - あるディレクトリにマークダウンファイルがあって、その中で上の画像ファイルを参照している - 画像ファイルの中でマークダウンに使われていない物を調べたい ``` `gutter:false; % ls img/ | xargs -n 1 -I@ bash -c "echo -n @; ggrep -rl @ ./ | wc -l" | awk '$2==0{print $1}' ``` ### 説明 imgディレクトリの下に複数の画像ファイルがあるとします。 カレントディレクトリの下に複数のマークダウンファイルがあるとします。 lsでリストアップした画像ファイルを1つづつgrepして使われているマークダウンファイルの数を調べます。 ``` `gutter:false; % ls img/ | xargs -n 1 -I@ bash -c "ggrep -rl @ ./ | wc -l" ``` これだけだと、数だけ出力されて、どの画像ファイルが使われているのかわからないので、echoコマンドで先頭に画像ファイル名を付与しています。 ``` `gutter:false; % ls img/ | xargs -n 1 -I@ bash -c "echo -n @; ggrep -rl @ ./ | wc -l" ``` 最後に、awkで2行目が0(使われていないもの)を出力して完成です。

0 件のコメント :

コメントを投稿