Wie verwende ich sed, um ein Zeichen an einer bestimmten Zeichenposition in nur EINER Zeile einzufügen?

Wie verwende ich sed, um ein Zeichen an einer bestimmten Zeichenposition in nur EINER Zeile einzufügen?

Mir ist bewusst, dass dies auf allen Zeilen das gewünschte Ergebnis liefert:

sed 's/^\(.\{4\}\)/\1-/' textFile

Aber wie gebe ich ein - nach dem 4. Zeichenplatz NUR in der 5. Zeile ein? Oder noch besser, in einem Zeilenbereich, etwa von 5-7?

Antwort1

Der erste Teil eines sedBefehls ist eine Bereichsangabe, die angibt, welche Zeile(n) betroffen sein sollen. Wenn kein Bereich angegeben ist, sind standardmäßig alle Zeilen gültig. Also:

sed '5,7s/^\(.\{4\}\)/\1-/' textFile

sollte tun, was Sie wollen.

verwandte Informationen