sedコマンドはチューリング完全

チューリング完全とは、万能チューリングマシンと同じ計算能力を持つこと。ざっくり言うと、条件分岐やループが実現できて普通のプログラミング言語で実現できるアルゴリズムを作れる能力を持つことです。

sedコマンド

sed コマンドは、テキスト処理を手軽にできるコマンド。シェル上で手軽にテキスト処理をしたいときによく使う。

たとえば文字列置換ができる。次の例はパイプでつないで正規表現で文字列置換する。

$ echo 'hello hello hello' | sed -e 's/hello/bye/g'
bye bye bye

テキストの行を抽出したりもできる。次の例は、偶数行目だけを出力する。

$ cat foo.txt
01
02
03
04
05
06
$ cat foo.txt | sed -ne '0~2p'
02
04
06

sedコマンドはチューリング完全

sedコマンドはチューリング完全である。つまり、普通のプログラミング言語と同等のアルゴリズム力がある。

ここに証明があった。

ソースコードでは何をしているのかよくわからなかったが、条件分岐とループをうまく実装しているっぽい。つよい。