Necesito insertar 12 espacios. Debe coincidir con una cadena en particular y luego pasar a la siguiente línea con 12 espacios.

Necesito insertar 12 espacios. Debe coincidir con una cadena en particular y luego pasar a la siguiente línea con 12 espacios.

Tengo un archivo llamado space.txt. Estoy haciendo la coincidencia de cadenas con ath2. Necesito insertar una cadena "newdata" después de 12 espacios. Probé el siguiente comando, que funciona, pero usé 12 espacios en blanco manuales. ¿Cómo se puede lograr de otra manera?

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

Necesito una salida como esta

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

Respuesta1

Puedes usar printfpara generar espacios:

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

Respuesta2

Es esto lo que quieres:

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

información relacionada