全体の構造
sedの内部には「パターン・スペース」と「ホールド・スペース」という、2本のバッファがある。
両方とも、初期状態は「空」である。
これから実行するコマンド
"strawberry"の"straw"を"blue"に置換して、"blueberry"にしたいとする。
echo "strawberry, strawberry" | sed -e "s/straw/blue/g"
blueberry, blueberry
- echoコマンドについて
echoコマンドは、文字列の末尾に自動で改行を付与する。
もし付与したくない場合は、-n
オプションを指定すると付与されなくなる。
処理の流れ
-
実行結果を出力ストリームに出力する(例:画面表示など)
この際、2.で取り除かれた改行が自動で元に戻される。
-
出力ストリームに出力したくない場合は?
-n
オプションを指定すると、出力されなくなります。
echo "strawberry, strawberry" | sed -n -e "s/straw/blue/g" # (出力されなくなった)
-
出力ストリームに出力したくない場合は?
-
次の行(もしあれば)を読み込む
参考文献
-
GNU sed manual
- やさしい英語で丁寧に解説されている
-
sed1line.txt
- 便利なsedのワンライナーがいくつも紹介されている