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