Мне кажется, что вы пытаетесь использовать sed для добавления литеральной строки (т.е. строки, содержащей любые символы), но sed не понимает литеральные строки, только регулярные выражения и замены с обратной ссылкой, см. Можно ли надежно избежать метасимволов регулярных выражений с помощью sed . Вместо этого вам следует использовать такой инструмент, как awk, который понимает буквальные строки.
Это все, что вы хотите сделать?
$ awk '{print} index($0,"├────►projectA"){print "├────►projectB"}' file
#testfile.txt
Main
├────►projectA
├────►projectB
└────►projectC
Если вы хотите 5 ведущих пробелов, просто добавьте 5 ведущих пробелов в строка в операторе печати:
$ awk '{print} index($0,"├────►projectA"){print " ├────►projectB"}' file
#testfile.txt
Main
├────►projectA
├────►projectB
└────►projectC
Если вы просто хотите дублировать любой отступ, который имеет предыдущая строка, вот модифицированная версия вашего входного файла:
$ cat file
#testfile.txt
Main
├────►projectA
└────►projectC
и вот как чтобы напечатать новую строку с любым отступом (пробелами и / или табуляциями), который использует предыдущая строка:
$ awk '{print} s=index($0,"├────►projectA"){print substr($0,1,s-1) "├────►projectB"}' file
#testfile.txt
Main
├────►projectA
├────►projectB
└────►projectC