次のようなテキストファイルがあるとします。
Hello world
types=""
Mario
types="Game"
私がやりたいのは、最初に出現するtype=""
「program」という単語を見つけて追加することです。次のような出力が必要です:
Hello world
types="program"
Mario
types="Game"
これを Unix シェル スクリプトで使用する必要があります。試したのは次のとおりです。
sed -i '1,/types=""/s/types=""/types="program"/' filename
コマンドを見ると、挿入のみで、追加は行われません。追加を試みましたa\
が、まだ機能しません。
答え1
ワンライナーの置換sed
はすでに意図したとおりに機能しているようです:
$ cat t.txt
Hello world
types=""
Mario
types="Game"
$ sed '1,/types=""/s/types=""/types="program"/' t.txt
Hello world
types="program"
Mario
types="Game"
質問を編集して、あなたコマンドを実行すると、結果がターミナルに出力されるオプションsed
なしで取得されます。-i
ところで、 の範囲は1,/types=""/
冗長です。次のように簡略化できます。
sed '/types=""/s/types=""/types="program"/' t.txt