Preciso inserir 12 espaços. Deve corresponder a uma string específica e depois ir para a próxima linha com 12 espaços

Preciso inserir 12 espaços. Deve corresponder a uma string específica e depois ir para a próxima linha com 12 espaços

Eu tenho um arquivo chamado space.txt. Estou fazendo a correspondência de strings com ath2. Preciso inserir uma string “newdata” após 12 espaços. Tentei o comando abaixo, que funciona, mas usei 12 espaços em branco manuais. Como isso pode ser alcançado de outra maneira?

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

Eu preciso de uma saída como esta

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

Responder1

Você pode usar printfpara gerar espaços:

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

Responder2

É isso que voce quer:

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

informação relacionada