各行の末尾にテキストを追加します。

各行の末尾にテキストを追加します。

次のような多くのコマンドを試しました。

sed -i '' "s/$/<@string>/" txt.txt > txt2.txt

これにより txt2.txt が空になります。なぜですか? ! ?

sed 's/$/<@string>/' txt.txt > txt2.txt

これはまったく何もせず、パスが<string>存在しないことを伝えます。

ではどうすればいいですか?私はOS Xを使用しているので、bsd sedを使用しています。

ベストアンサー1

この-iスイッチを使用すると、元のsedファイルが編集されます。これは出力がないことを意味し、出力がないため、リダイレクトすると空のファイルが生成されます。

だからあなたが欲しいのは

sed -i '' 's/$/<@string>/' txt.txt

それ以外の場合は、ソースが変更されますtxt.txt

 sed 's/$/<@string>/' txt.txt > txt2.txt

おすすめ記事