7

プロジェクト内のソースの行数を数えるために bash を使用しています。コードは次のとおりです。

#!/bin/bash
find . -name '*.java' | xargs wc -l
find . -name '*.xml' | xargs wc -l

./gen フォルダーからファイルを除外したい。「プルーン」と関係があると思いますが、やり方がわかりません。

編集 ruakhに感謝しますが、彼のコードは私の最終的な解決策ではありませんでした。行を再度カウントする必要がありました。誰かがそれを望むなら、これが完成したものです:

#!/bin/bash
find . -path ./gen -prune -o -name '*.java' | xargs wc -l
find . -name '*.xml' | xargs wc -l
4

2 に答える 2

8

ruakhのソリューションを機能させることができず、代わりに次のようになりました。

find . -not -path '*/gen*' -a \( -name '*.java' -o -name '*.xml' \)

egrepGNU find に基づく興味深いオプションも見つかりました。

find a/ -regextype egrep -not -path '*/gen*' -a -regex '.*(java|xml)$'

一致したファイルの行をカウントするにxargs cat | wc -lは、最後に貼り付けることができます:

find . -not -path '*/gen*' -a \( -name '*.java' -o -name '*.xml' \) | xargs cat | wc -l
于 2012-07-18T16:21:43.553 に答える
4

このコマンド:

find . -path ./gen -prune -o -name '*.java' -print

*.java内のどこかにあるすべてのファイルへのパスを、内のどこか.にあるものを除いて出力します./gen

于 2012-07-18T15:38:19.440 に答える