Ich muss 12 Leerzeichen einfügen. Es sollte mit einer bestimmten Zeichenfolge übereinstimmen und dann mit 12 Leerzeichen zur nächsten Zeile gehen

Ich muss 12 Leerzeichen einfügen. Es sollte mit einer bestimmten Zeichenfolge übereinstimmen und dann mit 12 Leerzeichen zur nächsten Zeile gehen

Ich habe eine Datei namens space.txt. Ich führe den String-Abgleich mit ath2 durch. Ich muss nach 12 Leerzeichen einen String „newdata“ einfügen. Ich habe den folgenden Befehl ausprobiert, der funktioniert, habe aber manuell 12 Leerzeichen verwendet. Wie kann das auf andere Weise erreicht werden?

sed -e "/ath2/a\            newdata" space.txt

Ich brauche eine Ausgabe wie diese

unix@BDC8-LX-CVZ52X2:~/12space$ cat space
ath1
ath2
            newdata
ath3
ath4
ath5

Antwort1

printfZum Erzeugen von Leerzeichen können Sie Folgendes verwenden :

sed -e '/ath2/a\'"$(printf %012s)"'newdata' "space.txt"

Antwort2

Ist das was du willst:

sed "/ath2/a$(printf '\%12s')newdata" space

verwandte Informationen