CompTia Linux+ LX0-103 (Teil 3) GNU- und Unix-Befehle

Wörter ersetzen mit sed und übersetzen mit tr

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Der Streameditor sed und der Translator tr sind zwei wichtige Befehle, um Zeilen in einer Datei oder Datenströme zu manipulieren. Was genau sich dahinter verbirgt, erklärt Ihnen Tom Wechsler in diesem Video.
12:34

Transkript

Der Stream-Editor sed und der Translator tr sind zwei wichtige Befehle, die Sie gleich kennenlernen werden. Zuerst schauen wir uns den Befehl sed an. Mit man sed erhalte ich die man pages zu diesem Befehl. Sie sehen: Stromeditor zum Filtern und Umwandeln von Text. Ich möchte in einer bestimmten Datei ein Wort ersetzen. Dazu kann ich die folgende Syntax einsetzen. Ich verwende sed 's – das steht für Substitution, also Ersetzen. Ich möchte das Wort dieses ersetzen durch das Wort durchdas. Das möchte ich in meiner Datei umsetzen. welche ich dann entsprechend angeben würde. Dann noch ein / und ein kleines g. Das g steht für global. Also immer, wenn das Wort dieses gefunden wird, wird es ersetzt durch durchdas. Ich schließe diese Folge ebenfalls mit einem Hochkomma und dann würde ich die entsprechende Datei angeben. In datei.txt werden nun also sämtliche Wörter dieses durch das Wort durchdas ersetzt. Wie funktioniert das nun ganz genau? Das schauen wir uns gleich jetzt an. Ich habe eine entsprechende Datei vorbereitet. Diese Datei heißt sed.txt. Schauen wir den Inhalt dieser Datei an mit cat sed.txt und wir haben hier eine Datei mit ein paar Sätzen darin. Dieser Satz macht keinen Sinn, aber mit linkedin ist das OK. Darum linkedin. Linkedin ist einfach Klasse. Wer hat Zweifel? Linkedin rocks! Nun möchte ich das Wort Linkedin mit Tom ersetzen. Nun kommt, wie bereits erklärt, der Stream-Editor zum Einsatz. Ich verwende sed, Hochkomma, ein s für die Substitution, und nun wähle ich Linkedin aus und ich möchte das durch das Wort Tom ersetzen. Und dann global über alle drei Sätze. Mit dem kleinen g. Ich schließe diese Folge mit dem Hochkomma und bestimme nun den Namen der Datei: sed.txt Nun schauen wir uns gleich das Resultat an. Wunderbar. Dieser Satz macht keinen Sinn, aber mit Tom ist das OK. Darum Tom. Linkedin ist einfach Klasse. Wer hat Zweifel? Linkedin rocks. Was haben wir jetzt gerade gesehen? Es wurde nur das kleingeschriebene linkedin ersetzt. Das großgeschriebene Linkedin wurde nicht berücksichtigt. Das können wir ändern. Ich wiederhole den Befehl mit der Pfeiltaste nach oben und lenke das erste Resultat in einen zweiten Stream-Editor um. Ich verwende also wiederum sed. Dann das Hochkomma, s für Substitution, und dieses Mal schreibe ich Linkedin groß geschrieben, damit wir dieses großgeschriebene Linkedin durch das großgeschriebene Wort Tom ersetzen können. Wiederum global über alles. Ich schließe diese Folge. Nun muss ich keine Datei mehr angeben. Den Dateinamen haben wir im ersten Befehl angegeben. Schauen wir uns das Resultat gleich an. Wunderbar. Sämtliche Wörter, Linkedin kleingeschrieben, Linkedin großgeschrieben, wurden durch Tom kleingeschrieben und Tom großgeschrieben ersetzt. Das hat wunderbar funktioniert. Allerdings muss man ehrlich sagen, wir mussten das Resultat mit einem Pipe in einen zweiten Befehl umlenken. Das können wir mit einem einfachen sogenannten regex, einem regulären Ausdruck, bessermachen. Dazu verwende ich die folgende Syntax. Zuerst wieder den Befehl sed. Dann 's. Nun wähle ich den regex aus. Diesen Regex kann ich mit einer eckigen Klammer definieren. Nun wähle ich ein großes L und dann ein kleines l. Ich schließe diesen Regex mit der eckigen Klammer und wähle nun den Rest von Linkedin aus. Ich möchte das ersetzen durch Tom. Wiederum global. Ich schließe diese Folge mit dem Hochkomma und gebe nun den Namen der Datei an. sed.txt Nun schauen wir uns gleich an, ob es auch tatsächlich funktioniert hat. Wunderbar. Dieser Satz macht keinen Sinn, aber mit Tom ist das OK. Darum Tom. Tom ist einfach Klasse. Wer hat Zweifel? Tom rocks. Es wurde also das klein- und das großgeschriebene Linkedin durch das Wort Tom ersetzt. Wunderbar. Ganz ehrlich, macht das so mit dieser Datei einen Sinn? Nein, ich denke nicht. Ich möchte Ihnen ein Beispiel zeigen, wo es tatsächlich Sinn macht, diesen Stream Editor einzusetzen. Dazu verbinde ich mich mit ssh auf das Cent OS 6.7-System. Ich verwende also ssh. Dann die entsprechende IP-Adresse. Und ich verbinde mich mit dem Cent OS 6.7-System. Ich gebe das Passwort ein. Sie sehen, ich bin auf diesem System angemeldet: Cent OS 6.7 Nun brauche ich noch root-Rechte, damit ich die entsprechende Datei auch auslesen kann. Ich habe mich als root angemeldet. Nun schauen wir uns einmal folgende Datei an. Mit less im Verzeichnis /etc ist eine Datei enthalten namens ntp.conf. Schauen wir uns diese Datei etwas genauer an und wir sehen, wir haben sehr viele Informationen. Es ist Text darin enthalten, welcher ausgeklammert wird durch das Rautezeichen. Sie sehen hier dieses Zeichen, es beinhaltet, dass sich der folgende Text nur als Kommentar auswirkt. Er hat keine Funktion. Wir haben dann wirkliche Funktionen, die ausgeführt werden. Wir haben Leerzeilen. Sie sehen also, darin sind viele Informationen enthalten, die vielleicht gar nicht notwendig sind. Denn ich möchte eigentlich mit dieser Datei ntp.conf den entsprechenden Site Server konfigurieren. Das kann ich hier angeben. Diese Datei hat also sehr viele Informationen, die zum Teil gar nicht benötigt werden. Mit wc -l im Verzeichnis /etc und dann wieder ntp.conf zählen wir einmal die Zeilen. Wir haben 53 Zeilen in dieser Datei. Nun setzen wir den Stream-Editor ein. Ich navigiere dazu in das Verzeichnis /etc. Nun verwende ich folgenden Befehl. Diesen Befehl habe ich vorbereitet. Sie sehen, ich setze sed ein Dann, was ganz wichtig ist: Ich möchte zuerst von dieser Datei ein Backup erstellen. Das erstelle ich mit -i. Hier gebe ich noch an, dass ich bei dieser Backup-Datei das Datum sehen möchte. Nun kommt die eigentliche Syntax. Sie sehen hier: Alles, was mit einer Raute beginnt, möchte ich mit dem /d löschen. D steht für delete. Und ich möchte sämtliche vorhandenen Leerzeilen mit dem /d löschen. Sie sehen hier dieses Zeichen, das Dach-Zeichen und dann das Dollarzeichen, das repräsentiert eine Leerzeile, die ganz am Anfang steht. Auf die Datei ntp.conf. Schauen wir uns das gleich an, ob es auch tatsächlich funktioniert. Ich drücke die Enter-Taste und nun, bevor wir uns das Resultat anschauen, möchte ich den Befehl wiederholen: wc -l. Auf die Datei /etc/ntp.conf. Schauen wir uns das Resultat an. Aha. Wir haben nur noch elf Zeilen anstelle von 53. Schauen wir uns das gleich an mit less und dann ntp.conf. In der Tat: Es wurden sämtliche Leerzeilen entfernt. Sämtliche Kommentare wurden gelöscht. Wir haben nur noch den Inhalt, den wir effektiv in dieser Datei brauchen. Das hat wunderbar funktioniert. Hat es auch die Backup-Datei erstellt? Das schauen wir uns gleich an. ls -l, dann nt* Und in der Tat, wir haben eine Backup-Datei namens ntp.conf mit dem entsprechenden Datum. Genau so, wie ich es haben wollte. sed wird also häufig verwendet, um Konfigurationsdateien anzupassen, wie zum Beispiel eine Apache-Konfigurationsdatei, wo Sie zum Beispiel den localhost durch den eigentlichen Servernamen ersetzen möchten. Schauen wir uns den nächsten Befehl an, das ist translate. Ich verwende nun den Befehl echo und hi. Nun wird hi eingeblendet. Ist nicht gerade berauschend, aber ... Wir können das Resultat umlenken in den Befehl translate. Nun verwende ich wieder folgende Option. Ich starte mit einer eckigen Klammer und wähle nun a-z, schließe diese Klammer und dann möchte ich eine weitere Klammer, Ich wähle nun die großen Buchstaben: A_Z Diese Klammer schließe ich ebenfalls. Nun schauen wir uns das Resultat gleich wieder an. Aha! Nun wurde also HI großgeschrieben! Das können wir erweitern, indem wir zum Beispiel mit einer neuen Datei arbeiten und dann wiederum ein translate durchführen. Zuerst einmal navigiere ich wieder zurück in mein Debian-8-System. Ich verwende dazu den Befehl exit, damit ich die root-Session beenden kann. Nun wähle ich nochmals exit, um die ssh-Session zu beenden. Nun sehen Sie, bin ich wieder auf meinem Debian-8-System, auf meinem Home-Laufwerk. Das kann ich mit pwd herausholen. Ich brauche also eine neue Datei. Diese Datei erstelle ich mit nano. Die heißt dann tr.txt. Darin soll folgender Inhalt sein: Zum Beispiel 1: Birnen 2: Äpfel 3:, nehmen wir Bananen, und dann zum Beispiel noch 4: Erdbeeren. Die sind auch immer sehr fein. Das auch noch groß schreiben, damit wir da eine Einheit haben. Mit CTRL-O speichern und CTRL-X beenden. Nun möchte ich wieder translate einsetzen. Den Inhalt der Datei tr.txt schauen wir uns an mit cat. Wunderbar. Da sehen wir den Inhalt. Ich verwende nun wiederum cat auf die Datei tr.txt, leite das Resultat mit type um und verwende nun tr n x. Nun schauen wir uns das entsprechende Resultat an. Aha, der Buchstabe N wurde durch den Buchstaben X ersetzt. Wunderbar. tr kann vor allem beim Scripten sehr hilfreich sein. In diesem Video haben Sie die beiden Befehle sed und tr kennengelernt.

CompTia Linux+ LX0-103 (Teil 3) GNU- und Unix-Befehle

Lernen Sie den Umgang mit der Kommandozeile, Dateien und Prozessen kennen und bereiten Sie sich auf die Comptia Linux+-Zertifizierungsprüfung LX0-103 vor.

3 Std. 32 min (40 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!