Да. Выражение 0,/regex/
приведет к тому, что следующая за ним команда (a
) будет применена ко всем строкам до (включительно) первого совпадения регулярное выражение.
Я предполагаю, что вместо этого вы хотели бы сделать
sed -i '0,/regex/{//a text
}' "$myfile"
Это выберет все строки до первого совпадения с регулярным выражением, а затем применит команду только к строке в этом диапазоне, которая соответствует выражению, при передаче все остальные линии через без изменений.
Буквальный перевод строки необходим для обозначения конца добавляемого текста.