kernelという単語で始まる各行に単語を追加するにはどうすればよいですか?

kernelという単語で始まる各行に単語を追加するにはどうすればよいですか?

行が多いファイルがあります。 「kernel」という単語で始まる各行の末尾に「audit = 1」という単語を追加したいと思います。例は次のとおりです。

kernel /boot/vmlinuz-LOTS OF INFO.......M rd_NO_DM 

次のようにする必要があります

kernel /boot/vmlinuz-LOTS OF INFO.......M rd_NO_DM audit=1

答え1

sed -e 's/^kernel.*/& audit=1' filename

結果を同じファイルに書きたい場合は、sed -i 's/...

答え2

awkを使えば使えます

awk '$1 == "kernel" {$NF = $NF OFS "audit=1"} 1' file

または

awk '$1 == "kernel" {$(++NF) = "audit=1"} 1' file

関連情報