解決できない 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
これが役に立つことを願っています!