多くのコマンドラインツール(grep
、flex
など)は^
記号を使用して「行の始まり」を表し、$
記号を使用して「行の終わり」を表します。この合意はいつ行われましたか?この目的のために2つの文字を予約するのは合理的に見えますが、最新のキーボードでは$
記号が左側にあることが少し奇妙です。^
これは完全に恣意的な決定ですか?これは古いキーボードレイアウトからのものですか?一部の古いツールがこの方法で作業を実行することを決定したため、このルールは使用されますか?
答えが何であれ、これを文書化した主なソースはありますか?
ベストアンサー1
QEDエディタ、1965年に書かれましたバークレー時間共有システム、$
使用ファイルの最後の行のアドレス指定、ed
今日のように。バラよりex
vi
vim
マニュアルページ 2-1。しかし、元のQEDエディタでは正規表現は許可されませんでした。
Ken Thompsonは、後で(「1960年代後半」)正規表現を実装した最初のエディタであるMulticsのQEDバージョンを作成しました。編集者はed
1969年にKenのUnix開発に大きな影響を与えました(後で1971年頃にDennis Richieによって「完成」)。苦情により、ed
Bill Joyは1977年にPDP-11の最初のBSDリリースを実装し、ex
その一部になりました。vi
^
and式$
とPOSIX正規表現の構文となった多くの部分と今日の意味がKenのQEDバージョンで実装されました。バラよりマニュアル4ページ。
これらの特定のシンボルの選択がどこから来たかはわかりませんが、$
最後の行を指定するために使用される方法で判断すると、すでに「最終的な」意味があります。
一部の端末では^
この文字を生成できません。これにより、\'
KenのQEDエディタを代わりに使用できます^
(参照:ベル研究所ハンドブック)。