Wie kann ich die Liste eindeutige Zeichen, die in eine text-Datei mit der linux-Kommandozeile-tools?
Möchte ich Liste eine Reihe von Zeichen, die in eine text-Datei mit linux-Kommandozeilen-tools. Wie kann ich das erreichen ?
uniq
- Dienstprogramm funktioniert nur auf den Linien.
- Es scheint eine Aufgabe für awk:
awk 'BEGIN{FS=""} {for(i=1;i<=NF;i++){chars[$(i)]=$(i);}} END{for(c in chars){print c;} }'
oderawk 'BEGIN{FS=""} {for(i=1;i<=NF;i++) print $(i);};' file.txt | sort | uniq
- Das hat geklappt 🙂 kannst du es als Antwort und es erklären ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde verwenden
od
Dies sind Zeichen, die zeigen
\escapes
für nicht-displayables. Andere Formate sind verfügbarBeispiele:
So, um die Liste der uniques:
Erstellen oder eine top-20-Histogramm:
Sehen es Live Auf IdeOne
| sort -u
am Ende, so dass ich sehen konnte, einen Vertreter, der alle Zeichen in einer einzigen Dateiod -cvAnone -w1
Arbeit in meiner CYGWIN-Instanz, dann sortierte ich es eindeutig (das endete genau was ich brauchte), kam dann hier zurück zu upvote & Kommentar, alle w/o Lesen Sie den rest von deinem post (bis jetzt).od -cvAnone -w1 <<< défaillir
Ich lieber diesen Weg:
So, in diesem Skript awk setipt. awk ist nützlich für die Verarbeitung der Ausgabe aller möglichen Kommandos.
Dieses Skript in drei Teile:
1)
Hier http://www.gnu.org/software/gawk/manual/html_node/Field-Splitting-Summary.html#Field-Splitting-Summary
2)
chars
ist nur ein eindimensionales assoziatives array (http://www.gnu.org/software/gawk/manual/html_node/Array-Basics.html#Array-Basics). Ich füge Werte während der Verarbeitung jeder char.3)
Letzten Abschnitt - zu Fuß durch das ganze array
chars
und einfach drucken Sie Ihre Indizes . http://www.gnu.org/software/gawk/manual/html_node/Scanning-an-Array.html#Scanning-an-ArrayPS.
Als für @sehe was Art und Weise der Verarbeitung.
Suchen Sie nach einem relativ großen text-Datei. Es ist >sechs mal schneller, um ein assoziatives array verwenden: