Мне нужно вставить 12 пробелов. Это должно соответствовать определенной строке, а затем перейти к следующей строке с 12 пробелами

Мне нужно вставить 12 пробелов. Это должно соответствовать определенной строке, а затем перейти к следующей строке с 12 пробелами

У меня есть файл с именем space.txt. Я делаю сопоставление строк с помощью ath2. Мне нужно вставить строку "newdata" после 12 пробелов. Я попробовал команду ниже, она работает, но использовал ручные белые 12 пробелов. Как этого можно добиться другим способом?

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

Мне нужен такой вывод

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

решение1

printfДля генерации пробелов можно использовать :

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

решение2

Это то, чего ты хочешь:

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

Связанный контент