sedコマンドを使用して、特定の行の単語置換をどのように変更できますか?

sedコマンドを使用して、特定の行の単語置換をどのように変更できますか?

4行目の単語を置き換える必要があるため、次のコマンドを使用しました。

sed -i '4 s/previous_word/new_word/' filename

それは非常にうまく動作します。ただし、行番号を変数に保存して同じコマンドを実行すると、次のエラーが発生します。

$ sed -i '${line_no} s/previous_word/new_word/' filename
 error
 sed: -e expression #1, char 5: expected newer version of sed

どうすれば正しくできますか?

ベストアンサー1

一重引用符の代わりに二重引用符を使用してください。

sed -i "${line_no}..."

バラよりスタックオーバーフロー:bashの一重引用符と二重引用符の違い

おすすめ記事