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
printf
Zum 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