sedを使用してファイルの特定の行の後に与えられた行を追加する方法

sedを使用してファイルの特定の行の後に与えられた行を追加する方法

bashファイルを作成し、sedを使用して他のファイルを編集しています。次の行の後に新しい行を追加したいと思います。

echo "rpcallowip=127.0.0.1\n";

追加された行は次のように表示されます。

echo "rpcallowip=$webip\n";

新しい出力はexample.conf次のとおりです。

echo "rpcallowip=127.0.0.1\n";
echo "rpcallowip=10.0.0.1\n";

図に示すように、行が ""に保たれることが重要です。

ベストアンサー1

fileコンテンツを含むファイルがあるとしましょう。

text
text text
echo "rpcallowip=127.0.0.1\n";
text
text text

echo行の後に行を追加するには、次のコマンドを使用しますsed

sed '/^echo "rpcallowip=127.0.0.1\\n";$/a\
echo "rpcallowip=$webip\\n";
' file

GNUの使用sed:

sed '/^echo "rpcallowip=127.0.0.1\\n";$/a echo "rpcallowip=$webip\\n";' file

どちらの例も、最初にテキストを追加するテキスト行を最初から最後まで一致させ、次にコマンドsed(「append」)を使用してa必要なテキストを追加します。パターンと挿入されたテキストの両方でinをもう一度エスケープする必要があり\ます\n(そしてもう少し賢明に言えば、パターンのIPアドレスのすべての点は必要です\.)。

上記の作業の結果は次のとおりです。

text
text text
echo "rpcallowip=127.0.0.1\n";
echo "rpcallowip=$webip\n";
text
text text

おすすめ記事