パターンに一致するファイルのシェルスクリプトと各ディレクトリの発生回数の計算

パターンに一致するファイルのシェルスクリプトと各ディレクトリの発生回数の計算

次の問題があります。ディレクトリごとに移行されたファイルの数を計算したいと思います。

私の構造は常に次のとおりです。

/some/path/app1/migrations/0001_hello_world.py  
/some/path/app2/migrations/0001_foo.py  
/some/path/app2/migrations/0002_bar.py

私にとって必要なのはシェルスクリプトです。最良の場合は、次の結果を得るための1行スクリプトです。

app1: 1
app2: 2

そのため、アプリケーションディレクトリあたりのファイル数を取得します。

私のファイルのリストを取得しました。

git diff --color --name-only --diff-filter=A origin/develop my-branch | grep "\/migrations\/[0-9]"

一致するものはすべて数えることはwc -lできますが、すべてのディレクトリを数えることはできません。

残念ながら、GoogleとStackを使用してもブロックされました。

このトピックについて考えていますか?

ベストアンサー1

努力する、

git diff --color --name-only --diff-filter=A origin/develop my-branch \
    | grep '/migrations/[0-9]' \
    | cut -d/ -f4 \
    | sort \
    | uniq -c

必要に応じて(ここ:)のフィールド番号を調整してくださいcut4

出力:

  2 app1
  1 app2

おすすめ記事