GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wort am Zeilenende mit Sed anhängen?

Für diese Frage gibt es hier bereits Antworten :Wie füge ich Text am Zeilenende hinzu, wenn das Muster übereinstimmt?

(5 Antworten)
Vor 4 Jahren geschlossen.

Ich habe einen Codeblock wie folgt in einer Datei:

BalancerMember http://snode1:80 min=1 max=1000 loadfactor=1  timeout=30 keepalive=on route=tc_snode1
BalancerMember http://snode2:80 min=1 max=1000 loadfactor=1  timeout=30 keepalive=on route=tc_snode2

Ich möchte nach allen Zeilen suchen, die tc_ hatten Schlüsselwort und fügen Sie status=D hinzu am Ende dieser Zeilen. Die obigen Einträge werden also wie folgt

BalancerMember http://snode1:80 min=1 max=1000 loadfactor=1  timeout=30 keepalive=on route=tc_snode1 status=D
BalancerMember http://snode2:80 min=1 max=1000 loadfactor=1  timeout=30 keepalive=on route=tc_snode2 status=D

Ich verwende den folgenden Befehl, um dies zu erreichen:

sed -i '/tc_/a status=D' app.conf

Aber ich kann status=D sehen ist nach einem Zeilenumbruch. Ich möchte dafür keinen Zeilenumbruch. Es sollte mit einem „“ angehängt werden ‘ (Leerzeichen) .

Akzeptierte Antwort:

versuchen

sed  -e '/tc_/s/$/ status=D/'

wo

  • /tc_/ online, wo tc_ gefunden wird,
  • s ersetzen,
  • /$ Zeilenende,
  • / status=D/ durch diese Zeichenfolge

Wenn es in Ordnung aussieht, fügen Sie -i hinzu direkt bearbeiten.


Linux
  1. Ersetzen Sie intelligente Anführungszeichen durch den Linux-Befehl sed

  2. Lernen Sie, den Sed-Texteditor zu verwenden

  3. ^M am Ende jeder Zeile in vim

  4. Löschen Sie die ersten fünf Zeichen in einer beliebigen Zeile einer Textdatei unter Linux mit sed

  5. Ersetzen Sie jedes Leerzeichen am Ende jeder Zeile durch '_'

So prüfen Sie die Rechtschreibung auf der Linux-Befehlszeile mit Aspell

Bearbeiten von Text in der Befehlszeile mit grep

Zeiterfassung mit Timewarrior auf der Kommandozeile

Verwendung des Linux-Befehls sed mit Beispielen

Das Konzept von 'Hold space' und 'Pattern space' in sed

sed Zeile mit Leerzeichen in eine bestimmte Zeile einfügen