Use aspas duplas em vez de aspas simples.
sed -i "${line_no}..."
Veja Stack Overflow: Diferença entre aspas simples e duplas no bash
Eu tenho que mudar uma palavra na quarta linha então usei este comando:
sed -i '4 s/previous_word/new_word/' filename
e funcionou perfeitamente. Mas se eu salvar o número da linha em uma variável e tentar o mesmo comando, recebo este erro:
$ sed -i '${line_no} s/previous_word/new_word/' filename
error
sed: -e expression #1, char 5: expected newer version of sed
Como posso fazer isso corretamente?
Use aspas duplas em vez de aspas simples.
sed -i "${line_no}..."
Veja Stack Overflow: Diferença entre aspas simples e duplas no bash
Tags text-processing sed