-i ''[echo $var] `i word'ファイルをsedするには?

-i ''[echo $var] `i word'ファイルをsedするには?

パスワード:

pos=2;
printf "Masi \nwas \nhere" > /tmp/1
sed -i '`echo $pos`i huhu' /tmp/1

予想出力:

ヤムジン
フフ
以前は
ここ

現在の出力:

sed: -e expression #1, char 1: unknown command: ``'

ベストアンサー1

アポストロフィ内の式は評価されません(サブシェルまたは変数も同じです)。一重引用符を使用する必要があります。

$ pos=2;
$ printf "Masi \nwas \nhere" > /tmp/1
$ sed -i "`echo $pos`i huhu" /tmp/1
$ cat /tmp/1
Masi 
huhu
was 
here

これは次のとおりです。

$ sed -i "${pos}i huhu" /tmp/1

(サブシェルなし)

おすすめ記事