Ich bin seit einiger Zeit Linux-Benutzer und verstehe die meisten gängigen Befehlszeilendienstprogramme recht gut. Doch diejenigen , die nach oben und wieder in Bezug auf die Programmierung kommen sind grep
, awk
und sed
.
Das Einzige, wofür ich grep verwendet habe, ist das Einlesen von Inhalten, um Dateien in Protokolldateien, die Ausgabe von ps
usw. zu finden, die ich nicht awk
oder sed
überhaupt nicht verwendet habe. Gibt es gute Tutorials für diese Dienstprogramme?
grep
,sed
undawk
tun (und in fast der gleichen Art und Weise) und vieles mehr an der Spitze.man
Seite, die sich wie 90% Fußnoten anfühlt.Antworten:
AWK eignet sich besonders gut für tabellarische Daten und weist eine geringere Lernkurve als einige Alternativen auf.
AWK: Ein Tutorial und eine Einführung
Ein AWK-Primer ( alternativer Link )
RegularExpressions.info
sed Tutorial
grep Tutorial
info sed
,info grep
undinfo awk
oderinfo gawk
quelle
Das O'Reilly Sed und Awk Buch ist großartig für Er Sed und Awk.
quelle
Ich habe ein Buch über
sed
- Definitive Guide to sed - geschrieben, das ein Tutorial enthält. Es deckt vollständigsed
, sowie die dazugehörigen Befehle wiegrep
,tr
,head
undtail
. Deckt auch reguläre Ausdrücke besser ab, als ich es anderswo gesehen habe.Ich stimme anderen zu, dass es sehr wichtig ist, reguläre Ausdrücke gut zu verstehen. Ich stimme auch zu, dass
sed
es am besten für einfachere Aufgaben geeignet ist und komplexere Skripte schnell undeutlich werden.Ich bin nicht der Meinung, dass dies
awk
veraltet ist, im Gegenteil. Es ist wie bei vielen Unix-Dingen (zBvi
), es gibt eine Lernkurve, aber es lohnt sich.Ich bin mit dem Vorschlag nicht einverstanden,
awk
anstelle von zu verwendengrep
. Ergibt meiner Erfahrung nach keinen Sinn.grep
ist so toll und einfach.quelle
grep
Meinung, dass Sie den Traktor nicht auf der Autobahn fahren dürfen, wenn Sie ihm helfen können. Und es ist auch ein ziemlich gutes Buch - danke.Das von O'Rielly herausgegebene Kochbuch für reguläre Ausdrücke würde ausreichen, um Sie in jeder Sprache, die sie verwendet, an einen beliebigen Ort zu bringen.
quelle
Die Autoren des Buches sind Kernigan und Pike. Der Titel ist so etwas wie "The Unix Programming Environment".
Das Buch, aus dem ich tatsächlich gelernt habe, hieß "Eine Einführung in Berkely Unix".
quelle
Wenn Sie eines von diesen 3 (grep, sed und awk) lernen möchten , können Sie einfach awk / gawk lernen . . awk kann die Funktionen von grep und sed ausführen, z. B. Regex zum Suchen / Ersetzen von Text und vieles mehr, da es sich auch um eine Programmiersprache handelt. Wenn Sie sich mit Gawk / Awk auskennen, müssen Sie grep / sed / wc / cut usw. nicht verwenden. Nur ein Tool erledigt dies.
quelle
g++ -x c++ - -o /tmp/prog && /tmp/prog
Ihre Befehle verwenden und eingeben. Ein Werkzeug, um sie alle zu beherrschen! :-)Meiner Meinung nach ist awk mehr oder weniger obsolet (andere werden sich jedoch stark dagegen aussprechen). Die meisten Leute, die ich heutzutage kenne, verwenden stattdessen eine Skriptsprache wie Perl oder heute oft Python für fortgeschrittene Textmanipulationen. sed ist großartig für einfachere Textbearbeitungsaufgaben, ich benutze es die ganze Zeit. Ich habe es hauptsächlich durch einen Blick auf sed Einzeiler wie die unter http://sed.sourceforge.net/sed1line.txt gelernt . Hinsichtlich grep: Nun, Sie möchten im Grunde ein solides Verständnis für reguläre Ausdrücke erhalten (auch für sed erforderlich). Ich habe hier nur die texinfo-Handbücher benutzt.
quelle
awk '{print $3}'
.dpkg -l
Ausgabe. Ich würde nichts entfernt Kompliziertes tun, aber ich würde ein Werkzeug ohne awk kurz sein. Ich kann das nicht für allgemeinere Programmiersprachen sagen, so sehr ich einige von ihnen mag.