1

他の多くのことを行うbashスクリプトに行を追加しようとしていますが、それを実行したいのは、別のファイルの行の終わりに書き込むことです。すべて1行のIPアドレスの行を含むファイルがあります。私が書いたこのスクリプトはユーザー入力を要求し、それが要求するものの1つはIPアドレスです。これは変数inside_ipとして保存されます。別のファイルの行末に書き込みたいと思います。私は同様の質問を見つけました、そして解決策は

sed -i.bck '$s/$/yourText2/' list.txt

私はそれをファイルに入れようとしました

sed -i.bck '$s/$/ $inside_ip/' list.txt

ただし、実際にはファイルの最後に$ inside_ipが書き込まれるため、変数を出力するために必要です。

4

3 に答える 3

2

"の代わりに を使用'してくださいsed -i.bck "s/$/ $inside_ip/" list.txt

于 2013-03-01T04:08:28.757 に答える
2

次のことはあなたに当てはまりますか?

echo $inside_ip >> list.txt
于 2013-03-01T04:05:53.000 に答える
1

単一引用符は、変数の展開を停止します。二重引用符を使用すると、それらを展開できます。したがって:

sed -i.bck '$s/$/ '"$inside_ip/" list.txt

$sこれにより、一重引用符が保護されます。(おそらく設定されていない)シェル変数の値ではなく、とsedを見たいと思っています。もちろん、ファイルに含まれる行が 1 行だけの場合、先頭は重要ではありません。省略するか、に置き換えることができます。とにかくそのままにしておきますが、その後の二重引用符は変数を展開し、その中のスペースを保持します (ただし、IP アドレスには通常スペースは含まれません) 。$s$s$1/$/

于 2013-03-01T04:08:22.467 に答える