以下のようなテキストファイルがあるとします。
Hello world
types=""
Mario
types="Game"
私がやりたいのは、type=""
の最初の出現を見つけて、Wordの「プログラム」を追加することです。次のように出力する必要があります:
Hello world
types="program"
Mario
types="Game"
これをUnixシェルスクリプトで使用する必要があります。私が試したのは:
sed -i '1,/types=""/s/types=""/types="program"/' filename
コマンドの見た目は、追加ではなく挿入のみです。 a\
を追加しようとしましたが、まだ機能しません。
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
オプションなし)を実行したときにyouが何を取得するかを示すことは価値があるかもしれません結果が端末に出力されるようにします)。
ところで、1,/types=""/
の範囲は冗長です。次のように簡略化できます。
sed '/types=""/s/types=""/types="program"/' t.txt