Ich möchte nur eine Sache erwähnen, es gibt viele Tools, die Textverarbeitung durchführen können, z. ..
Sie sind sehr praktisch, aber Sie müssen ihre Optionen lernen usw.
Ein fauler Weg (nicht der beste Weg), Textverarbeitung zu lernen, könnte sein:Lernen Sie nur grep , sed und awk. Mit diesen drei Tools können Sie fast 99 % der Textverarbeitungsprobleme lösen und müssen sich die oben genannten verschiedenen Befehlszeilen und Optionen nicht merken. :)
UND wenn Sie die drei gelernt und angewendet haben, kennen Sie den Unterschied. Tatsächlich bedeutet der Unterschied hier, welches Tool welche Art von Problem gut lösen kann.
ein faulerer Weg könnte das Erlernen einer Skriptsprache (Python, Perl oder Ruby) sein und jede Textverarbeitung damit durchführen.
Kurzdefinition:
grep
:nach bestimmten Begriffen in einer Datei suchen
#usage
$ grep This file.txt
Every line containing "This"
Every line containing "This"
Every line containing "This"
Every line containing "This"
$ cat file.txt
Every line containing "This"
Every line containing "This"
Every line containing "That"
Every line containing "This"
Every line containing "This"
Jetzt awk
und sed
sind komplett anders als grep
.awk
und sed
sind Textverarbeitungsprogramme. Sie haben nicht nur die Fähigkeit, das zu finden, wonach Sie im Text suchen, sondern auch den Text zu entfernen, hinzuzufügen und zu ändern (und vieles mehr).
awk
wird hauptsächlich für die Datenextraktion und Berichterstellung verwendet. sed
ist ein Stream-Editor
Jeder von ihnen hat seine eigene Funktionalität und Besonderheiten.
Beispiel
Sed
$ sed -i 's/cat/dog/' file.txt
# this will replace any occurrence of the characters 'cat' by 'dog'
Okay
$ awk '{print $2}' file.txt
# this will print the second column of file.txt
Basis awk
Verwendungszweck:
Berechne Summe/Durchschnitt/Max/Min/usw. was auch immer Sie brauchen.
$ cat file.txt
A 10
B 20
C 60
$ awk 'BEGIN {sum=0; count=0; OFS="\t"} {sum+=$2; count++} END {print "Average:", sum/count}' file.txt
Average: 30
Ich empfehle Ihnen, dieses Buch zu lesen:Sed &Awk:2nd Ed.
Es wird Ihnen helfen, ein kompetenter sed/awk-Benutzer in jeder Unix-ähnlichen Umgebung zu werden.
Grep ist nützlich, wenn Sie schnell nach übereinstimmenden Zeilen in einer Datei suchen möchten. Es kann auch einige andere einfache Informationen wie übereinstimmende Zeilennummern, Anzahl der Übereinstimmungen und Dateinamenslisten zurückgeben.
Awk ist eine vollständige Programmiersprache, die darauf aufgebaut ist, Dateien im CSV-Stil zu lesen, die Datensätze zu verarbeiten und optional einen Ergebnisdatensatz auszudrucken. Es kann viele Dinge tun, aber es ist nicht das einfachste Werkzeug für einfache Aufgaben.
Sed ist nützlich, wenn Sie Änderungen an einer Datei basierend auf regulären Ausdrücken vornehmen möchten. Es ermöglicht Ihnen, Teile von Linien einfach abzugleichen, Änderungen vorzunehmen und Ergebnisse auszudrucken. Es ist weniger ausdrucksstark als awk, aber dadurch lässt es sich für einfache Aufgaben etwas einfacher verwenden. Es hat viele kompliziertere Operatoren, die Sie verwenden können (ich denke, es wird sogar vollständig), aber im Allgemeinen werden Sie diese Funktionen nicht verwenden.