Grundlagen von Linux und der Kommandozeile

$ echo "aaa bab" | sed 's/a/x/'

Welche Ausgabe erzeugt der obige sed-Befehl, der Zeichen ersetzt?

  1. Axaa bab
  2. Bxaa bxb
  3. Cxxx bxb
Antwort und Erläuterung anzeigen

Antwort: A. xaa bab

sed ersetzt mit s/vorher/nachher/ in jeder Zeile nur den ersten gefundenen Treffer. Das erste a in dieser Zeile ist das erste Zeichen, also lautet die Ausgabe xaa bab. Um jeden Treffer in der Zeile zu ersetzen, hängt man g (global) an, wie in s/a/x/g; die Ausgabe ist dann xxx bxb. Ersetzt wird zeilenweise: Hat eine Datei mehrere Zeilen, wird auch ohne g in jeder Zeile der erste Treffer ersetzt.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen von Linux und der Kommandozeile

  1. Was gibt das letzte awk in der obigen Sitzung aus?
  2. Welche Beschreibung der Dateien, die GNU find mit „find /data -name "*.log" -mtime +7 -size +100M“ findet, ist richtig?
  3. Um einen Prozess zu stoppen, der nicht mehr reagiert, gilt es als empfehlenswert, zuerst „kill Prozess-ID“ zu verwenden und „kill -9 Prozess-ID“ nur dann, wenn er damit nicht endet. Was ist der Grund?
  4. Während ein langwieriges ./sim.sh in einem Terminal läuft, möchte man im selben Terminal andere Befehle verwenden. Was geschieht, wenn man Strg+Z drückt und danach bg ausführt?
  5. Auf einem per SSH erreichten Server wurde eine langwierige Berechnung mit „./run.sh &“ gestartet; als die Verbindung getrennt wurde, brach auch die Berechnung ab. Wie startet man sie am besten, damit sie nach dem Trennen der Verbindung weiterläuft?