Anhängen an das Ende einer Zeile mit 'sed'


15

Ich habe eine Zeile, die sagt ...

Fred Flintstone, Bedrock USA

und ich möchte, dass es so aussieht ...

Fred Flintstone, Bedrock USA ***

Wie füge ich mit dem sedBefehl ein paar * an das Zeilenende an ?

Antworten:


21

Sie können dies verwenden:

sed 's/$/ ***/' filename

Wenn Sie möchten , auf eine Linie vor Anfügen nach einer bestimmten Zeichenfolge suchen (dh Sie wollen es nicht wie der obige Befehl zu jeder Zeile angefügt) können Sie folgende verwenden können, diese findet Fred Flintstoneüberall in einer Linie, setzen Sie ^vor , wenn Sie möchte nur mit dem Zeilenanfang übereinstimmen.

sed '/Fred Flintstone/ s/$/ ***/' filename

Du brauchst dort kein &.
Muru

Was ist der Zweck von & hier oder irgendwo in Sed?
Heemayl

1
Das hat perfekt funktioniert! Wie verwenden Sie es, um an eine bestimmte Zeile anzuhängen? Der obige Befehl führt dies für jede Zeile in der Textdatei aus. Ich bin daran interessiert, für alle Zeilen zu arbeiten, die mit dem Namen "Fred" beginnen
Justin

@ Justin:sed 's/^Fred.*/& ***/' filename
Cyrus

1
Hoppla, ich habe den Befehl falsch geschrieben. Funktioniert gut. Vielen Dank!
Justin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.