Ich habe ein kleines Skript zusammengestellt, das Dateien eines bestimmten Typs in einem Verzeichnis durchsuchen soll, in dem eindeutige Wortzahlen> 4 Zeichen gesammelt werden, aber es funktioniert nicht wie erwartet.Entfernen von Groß-/Kleinbuchstaben-Duplikaten in der Liste
- Es beseitigt nicht das gleiche Wort unabhängig vom Fall.
- Ich bin mir nicht sicher, wie man die Summen jedes Wortes offensichtlich zusammenzählt.
- Schließlich ist dies eine effiziente Möglichkeit, dies zu tun (wenn es tatsächlich funktioniert?).
Script:
#!/bin/bash
file_list=()
while IFS= read file ; do
file_list=("${file_list[@]}" "$file")
tr -sc 'A-Za-z' '\012' < "$file" | sort | uniq -c | egrep "\w{4,}" >> words.txt
done < <(find . -maxdepth 1 -type f -name "*.c")
# echo "${file_list[@]}"
cat words.txt | sort -u | sort -nr
echo "" > words.txt
Beispiel Ausgabe:
38 char
35 return
25 static
18 year
18 char
10 COLS
10 CHAR
Wie würde ich das übertölpelt Wort entfernen char
im Beispiel oben, aber es ist Zahl in allen Dateien zu bekommen?
Wie wird „Wort“ definiert? Ist es eine Zeichenkette, die durch ein Leerzeichen/Tab/eine neue Zeile oder etwas mehr getrennt ist? –
@RanyAlbegWein: a-zA-Z (vier Zeichen +), getrennt durch Leerzeichen, Zeilenumbruch, Tabulator, ich denke, es deckt ab ... das ist, wofür ich mindestens gehe. danke –