Zählen Sie die Anzahl der Dateien in vielen Ordnern und zählen Sie die Anzahl der Zeichen in den Namen der Dateien in den Ordnern

Zählen Sie die Anzahl der Dateien in vielen Ordnern und zählen Sie die Anzahl der Zeichen in den Namen der Dateien in den Ordnern

Ich habe eine Linux-Frage, die ich nicht lösen kann. Ich habe versucht, sie zu lösen – ich habe auch versucht, das Forum zu durchsuchen, habe aber keinen Hinweis oder eine Lösungsmöglichkeit gefunden.

Frage:

Schreiben Sie Befehle, die die Anzahl der Dateien in den Ordnern „Vegetables“ und „Fruits“ zusammenzählen. Die Antwort muss in einer CounterFood-Datei gespeichert werden. Mehrere Befehle sind zulässig.

Nachdem Sie diese Befehle ausgeführt haben, werden Sie dazu aufgefordert:

Die Gesamtzahl der Zeichen in den Namen der Dateien in den Ordnern „Vegetables“ und „Fruits“ muss zur Datei „CounterFood“ hinzugefügt werden. Es können mehrere Befehle verwendet werden.

Versuchen

Ich habe darüber nachgedacht, einen arithmetischen Einschub durchzuführen, habe aber keinen solchen Befehl gefunden.

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

Ich habe versucht zu zählen, wie viele Dateien es gab - aber ich konnte die beiden Ordner nicht zusammen zählen. Dann kam ich auf Folgendes - meine Idee ist, auf die Ordner zuzugreifen - alle Dateien zu finden - und sie dann zu zählen

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

Die Fortsetzung der Frage hängt direkt mit dem Anfang zusammen. Aber der Anfang hat bei mir nicht geklappt - ich kann nicht verstehen, warum.

Antwort1

Teil 1

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

Teil 2

Wenn du meintesthinzufügendann wird das funktionieren

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

Wenn du meintestAnhängendann wird das funktionieren

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

Antwort2

Gesamtzahl der Dateien in beiden Ordnern:

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

Gesamtzahl der Zeichen der Dateinamen in beiden Ordnern:

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

Hoffe, das hilft!

verwandte Informationen