ファイルの最初の行の前にテキストを挿入するには?

ファイルの最初の行の前にテキストを挿入するには?

sedファイルの特定の行にテキストを追加するコマンドを探していました。これにより、行1の後にテキストが追加されます。

sed '1 a\

しかし、私はそれを追加したいです。今後1号線。それは次のとおりです。

sed '0 a\

ただし、次のエラーが発生しますinvalid usage of line address 0

どんな提案がありますか?

ベストアンサー1

sedinsert( ) オプションを使用すると、i前の行にテキストを挿入します。

sed '1 i\

質問作成者の更新:

GNUを使用してファイルを適切に編集するには、次のオプションを追加するsed必要がありました。-i

sed -i '1 i\anything' file

そして文法

sed  -i '1i text' filename

GNU以外のsedの場合

バックスラッシュの直後に1i\Enterキーを押す必要がありますfirst_line_text

sed -i '1i\
first_line_text
'

また、いくつかの非GNUsed実装(macOSの実装など)にも注意してください。必要フラグの引数-i-i ''GNUと同じ効果を得るために使用されますsed)。

sedまったくサポートされていない実装では、-iこのオプションなしで実行されますが、出力を新しいファイルにリダイレクトします。次に、古いファイルを新しく作成されたファイルと置き換えます。

おすすめ記事