コマンドラインでファイルの各行の先頭に文字列を追加する最も簡単な方法は何ですか?

コマンドラインでファイルの各行の先頭に文字列を追加する最も簡単な方法は何ですか?

各行の先頭に文字列を追加する方法を探しています(各行に同じ文字列を使用)。カスタマイズすることはできませんが、覚えやすく、すべてのPOSIX互換プラットフォーム(およびすべてのシェル)で使用できます。

ベストアンサー1

:|paste -d'foo ' - - - - input > output

(冗談です。ここで公開されているすべての解決策の中で最速の解決策を見つけることもできます。:-b)。

正式な方法は次のとおりです。

sed 's/^/foo /' < input > output

ただし、任意の文字列に簡単に適用することはできません。例えば、

sed "s/^/$var /"

、または改行文字を$var含まない場合にのみ有効であり、少なくともGNU sedの任意のコマンド実行の脆弱性は保証されません。&\/

これに関して、

export var
awk '{print ENVIRON["var"], $0}'

または

perl -pe '$_="$ENV{var} $_"'

うまく動作します。

おすすめ記事