sed コマンドを使用して特定の行に変数を書き込む

sed コマンドを使用して特定の行に変数を書き込む
echo -n "##### STATIONS? #######"
read station
text="stab_site "

$text$stationテキストファイルの27行目にechoを書く必要があります。次のコマンドを使用しましたが、機能しません。

sed -i "27i\$text$station" text.data

その結果、$textankr ista「text」変数はsed関数内に渡すことはできません。

ベストアンサー1

これは、シェルがそれを\$文字通り(エスケープされた)ドル記号として解釈するためです。努力する

sed -i "27i\\$text$station" text.data

または、一重引用符と二重引用符を混在させます。

sed -i '27i\'"$text$station" text.data

またはリテラル改行を使用してください。

sed -i "27i\
$text$station" text.data

(私の考えでは、これはPOSIXがより正確だと思います)。

おすすめ記事