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 ?

Justin
quelle

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
Cyrus
quelle
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