多数のフォルダ内のファイルの数を数え、フォルダ内のファイル名の文字数を数えます

多数のフォルダ内のファイルの数を数え、フォルダ内のファイル名の文字数を数えます

解決できない Linux の質問が 1 つあります。解決しようと試み、フォーラムを検索してみましたが、手がかりも解決方法も見つかりませんでした。

質問:

Vegetables フォルダと Fruits フォルダ内のファイルの数を合計してカウントするコマンドを記述します。答えは CounterFood ファイルに保存する必要があります。複数のコマンドが許可されます。

これらのコマンドを実行すると、次のプロンプトが表示されます:

Vegetables フォルダと Fruits フォルダ内のファイル名の合計文字数を CounterFood ファイルに追加する必要があります。複数のコマンドを使用できます。

試す

算術挿入をしようかと思ったのですが、そのようなコマンドは見つかりませんでした。

ls -l . Vegetables Fruits  | egrep -c '^-' >> CounterFood

ファイルがいくつあるか数えようとしましたが、2つのフォルダを合わせて数えることはできませんでした。そこで思いついたのが、フォルダにアクセスしてすべてのファイルを探し、それらを数えるというアイデアです。

find Vegetables Fruits -type f | wc - >>CounterFood 

質問の続きは冒頭に直接関係しています。しかし、冒頭はうまくいきませんでした。その理由が理解できません。

答え1

パート1

find Vegetables Fruits -type f -printf "x" | wc -c > CounterFood      # Print "x" for each filename and count them

パート2

もしあなたが追加そうすればうまくいく

namelen=$(find Vegetables Fruits -type f -printf "%f" | wc -c)        # Characters in file names
counterfood=$(cat CounterFood)                                        # Previous total

echo $((namelen + counterfood)) > CounterFood                         # Add them together

もしあなたが追加そうすればうまくいく

find Vegetables Fruits -type f -printf "%f" | wc -c >> CounterFood    # Characters in file names

答え2

両方のフォルダ内のファイルの合計数:

expr `ls -l Vegetables | sed 1d | wc -l` + `ls -l Fruits | sed 1d | wc -l` >> CounterFood

両フォルダ内のファイル名の合計文字数:

expr `ls Vegetables | wc -c` + `ls Fruits  | wc -c` >> CounterFoods

これが役に立つことを願っています!

関連情報