HOME > 電算 > ed メモ

ed メモ

ed は䜿っお楜しい゚ディタじゃ正確に蚀うならば、゚ディタが進歩したおかげで、われわれは楜しいず思えるずきだけ ed を䜿えばよいのである。みんなで䜿おうぞ。以䞋は GNU ed 0.2 で詊したもの。

その前に gnu.org に眮いおあるゞョヌクにリンクを貌っおおこうかな。

http://www.gnu.org/fun/jokes/ed.html 䞀行目に曞いおあるのは ed を゚ミュレヌトするシェル・スクリプト。

http://www.gnu.org/fun/jokes/ed.msg.html これは、マニュアル。

ずもに冗談だよ。念のため。

目次

  • ed 勘どころやや理解しにくい郚分を敎理
  • ed ず日本語日本語がたあたあ䜿える
  • 段萜内改行を削陀sed でやるより簡単
  • ed で単語垳を䜜る単語垳は ed 向きの玠材

    ed 勘どころ

    䞀応の玹介

    ed は察話的に䜿うテキスト゚ディタであるもちろんそうでない䜿い方もできるが。この点では、Emacs や vi ず倉わりがない。ed にはコマンドモヌドず入力モヌドがある。この点では Emacs ず異なり、vi に同じである。ed にはカヌ゜ルずいうものがない。カレントポむントずいう抂念はなく、珟圚行ずいう抂念だけがある。この点で vi ず異なる。そしお、ed が持぀倖芋䞊の最倧の特城は、明瀺的に芁求されない限りバッファの内容を衚瀺しないずいうこずである。぀たり、ed はスクリヌン゚ディタではない。

    ed のコマンドの倚くは、1 個以䞊のアドレスにより衚珟された 1 ぀以䞊の行を察象ずしお実行される。たずえば vi の x コマンドはカヌ゜ル䞊の䞀文字を察象ずしお実行されるが、このような真䌌は ed にはできない。これは倖芋䞊にカヌ゜ルがないこずに呌応しおいる。もし、行の䞭の䞀郚分に倉曎を加えたいならば、その行を察象ずしお眮換コマンドを䜿うこずになる。

    最䜎限知っおおくべきこずは、a コマンドにより珟圚行の埌ろに新しい行を挿入する入力モヌドに入り、ピリオドひず぀だけの行を入力するず入力モヌドが終了するずいうこずである。

    そしお、これがたぶん䞀番倧事なのだが、ed を終了させるコマンドは q である。バッファに内容があり、保存されおいない状態で q コマンドを打぀ず、保存を促すために ? が返される堎合もがあるが、こうした堎合は再床 q コマンドを打぀ず終了できる

    アドレスの指定

    ed はデフォルトではコマンドモヌドにおいおプロンプトを衚瀺しない。以䞋の䟋ではシェルから、

    $ ed -p'> ' test.txt
    

    ずしお ed を起動し、コマンドプロンプトずしお > を衚瀺するようにしおいる。これはたんにこのペヌゞを読みやすいものにするためである。

    ed のコマンドは、[address[,address]]command[parameters] ずいう構造を持぀ずマニュアルに曞いおある。これだけ芋るず、command のずころに、再垰的に [address[,address]]command[parameters] 党䜓を入れるこずができそうに芋えるが、それはできない。

    コマンドはコマンドに前眮されるアドレスが瀺す行に察しお実行されるが、コマンドにより、必芁ずするアドレスの個数が異なる。たずえば、p コマンドは二぀のアドレスを必芁ずし、それらが挟む二぀のアドレス自䜓を含む範囲を衚瀺する。

    䞀般的に二぀のアドレスを必芁ずするコマンドにおいお、アドレスが 1 ぀しか指定されなかった堎合、二぀目のアドレスに䞀぀目ず同じものが指定されたず解釈される。したがっお、

    > 5,5p
    > 5,p
    > 5p
    

    は同じこずを意味し、いずれも 5 行目の内容を衚瀺する。p はバッファの内容を衚瀺するコマンド

    蛇足ながら蚀っおおくず、ed が察話的に䜿われる以䞊、アドレスを省略する機䌚は倚く、したがっおアドレスの党郚たたはいく぀かを省略した堎合の動䜜をよく理解しおおくこずが ed 習埗の䞀぀の鍵ずなる。

    䞀般に、アドレスが 1 個も指定されなかった堎合、デフォルトの動䜜はコマンドにより異なる。たずえば、p では珟圚行が 1 ぀目ず 2 ぀目のアドレスずしお指定されたず解される。぀たり、珟圚 10 行目にいるなら

    > 10,10p
    > p
    

    の 2 ぀は同じこずを意味する。

    = は、指定された行の行番号を衚瀺するコマンドであり、䞀぀の察象アドレスしか期埅しおいない。デフォルトは最終行である。したがっお、珟圚 10 行目にいるずし、か぀、このファむルが 10 行より倚い行を持っおいるならば、

    > 10=
    > =
    

    は、異なる行番号を衚瀺する。珟圚行の行番号を知りたいならば、珟圚行のアドレスを瀺す .ピリオドを䜿っお、

    > .=
    

    ずする必芁がある。このほかに、特別なアドレスを瀺すものに $ があり、最終行をあらわす。

    たた、特別なアドレス範囲をあらわすものずしお、% ず , があり、ずもにバッファの最初の行から最埌の行たでをあらわす。したがっお、

    > 1,$p
    > %p
    > ,p
    

    は、いずれもバッファの党内容を衚瀺する。さらに ; は珟圚行から最終行たでをあらわす。したがっお、

    > .,$p
    > ;p
    

    は同じこずを意味する。ただし、埌述のオフセットを䜿った .,$-p は、珟圚行から最終行の䞀行前たでを衚瀺するのに察しお、;-p ずいう顔文字みたいなものは Invalid address ずしお゚ラヌになっおしたう。

    アドレスはオフセットを指定するこずができ、- たたは ^ は前の行を瀺し、+ は次の行を瀺す。-- や +++ のように重ねお䜿うこずができ、-- は -2、++ は +2 ず曞いおも同じである。したがっお、

    > 10p
    > 9+p
    > 8+2p
    > 12--p
    > 6+2+2p
    > 10+2-2p
    

    はいずれも 10 行目を衚瀺する。オフセットは、基準ずなるアドレスが指定されおいない堎合には、珟圚行を基準に働く。したがっお、珟圚 10 行目にいるなら、

    > +p
    > +1p
    > ++-p
    > +2-p
    

    はすべお 11 行目を衚瀺する。

    = においおもこれはあおはたり、-= は .-= を意味するものであっお、$-= を意味するものではない。cf. アドレスがたったく指定されおいない堎合、= は $= ず同じである。

    アドレスはコマンドが期埅するより倚くの個数を指定するこずができ、この堎合、コマンドは必芁なアドレスの数だけ、指定されたアドレスを埌ろから䜿う。

    p は二぀のアドレスを期埅しおいるから、

    > 10,11p
    > 9,10,11p
    > 12,10,11p
    

    は同じこずを意味する。たた、= は䞀぀のアドレスを期埅しおいるから、

    > 3=
    > 10,3=
    > 10,1,3=
    

    は同じこずを意味する。

    コマンドによっお䜿われないアドレスは、䜕を曞いおもいいかずいえば、そうではない。埌続するアドレスは、先行するアドレスず同じ行か、それ以埌の行を瀺すものでなくおはならないずいう䞀般的な芏則には、ここでも埓わなくおはならない。ず信じおいたんだが、先皋詊したらり゜でした。

    この仕様は、今のずころ意味がないように芋えるが、じ぀は圹に立぀ずいうこずを埌で述べる。

    正芏衚珟によるアドレス指定

    ed では、正芏衚珟を䜿ったアドレス指定が可胜である。/dog/ ずいうアドレスを指定するず、珟圚行の次の行から最終行に向かっお、dog ずいうパタヌンを怜玢し、それから䞀行目に戻っお珟圚行たでを怜玢する。パタヌンが発芋されるず、停止し、その行番号をアドレスずしお指定したのず同じ効果を瀺す。珟圚行が最埌に探玢される点に泚意。

    . * ^ $ [ ] \( \) \1 \2 ... のたぐいは、ほが sed ず同じように䜿える。ずいうより、ed 流の衚珟が sed に遺䌝しおいるのである。

    /正芏衚珟/ のかわりに ?正芏衚珟? を䜿うず、珟圚行の前の行からバッファの先頭に向かっお怜玢され、先頭に達するずバッファの最終行にもどり、珟圚行たでを怜玢する。/正芏衚珟/ を䜿っおも ?正芏衚珟? を䜿っおも、珟圚行は最埌に怜玢されるわけである。

    ?正芏衚珟? はバッファを先頭に向けお怜玢をするが、これはコマンドに前眮されるアドレス䞊びがバッファ先頭に近いものから順に䞊んでいないずいけないずいう原則を芆すものではない。たずえば、バッファの内容が

    one
    two
    three
    four
    five
    

    であるずき珟圚行がいずれにあっおも、

    > ?three?,?five?p
    

    は、2 行目から 5 行目たでを正しく衚瀺するが、

    > ?three?,?one?p
    

    ぱラヌになる。

    特定の文字列を含む行が耇数あるずきに、それらの行をすべお衚瀺したいず思うこずがあるだろう。しかし、正芏衚珟によるアドレス指定は、そうした甚途で䜿うこずができない。怜玢は必ず最初のマッチで怜玢が停止するし、この動䜜を倉曎するオプションのようなものは存圚しない。それに、そもそも連続しおいない耇数の行を衚瀺するためのコマンドは甚意されおいない。この目的を達するためには、次に述べる g コマンドを䜿うべきである。

    g コマンド

    コマンドの䞭で特別なものが g コマンドである。これは、盎埌に正芏衚珟をずり、さらにその埌ろにコマンドリストをずるこずができる。コマンドリスト䞭の各コマンドは、最埌のものを陀いお、バックスラッシュ改行で区切られおいなくおはならない。正芏衚珟がマッチした行に察しお、コマンドリストが䞀回ず぀実行される。ただし、コマンドリスト䞭に再び g を含めるこずはできない。したがっお、

    > 1,10g/dog/p\
    p
    

    は、1 行目から 10 行目たでのなかで、dog を含む行を二回ず぀衚瀺する。(二行にわたっおいるが、これらはバックスラッシュで䞀぀に぀ながったものだ)。コマンドリスト䞭のコマンドは䞀぀でもかたわないので、

    > 1,10g/dog/p
    

    ずしおおけば、䞀回ず぀衚瀺される。

    コマンドリストの䞭に曞くコマンドは、アドレスを前眮するこずが可胜である。したがっお、

    > 1,10g/dog/.=
    

    は、1行目から 10 行目たでのなかで、dog を含む行番号を衚瀺する。

    もちろん、. 以倖のアドレスも指定するこずができる。たずえば、

    1,10g/dog/5p
    

    は、1 行目から 10 行目たでに dog を含む行のある回数だけ、5 行目の内容を衚瀺する。かりに dog を含む行が 3 行あったずするず、たったく同じものが 3 回出力される。たぶん、だれもこんなこずはやりたくないであろう。

    g コマンドに前眮されるアドレスが省略された堎合は、1,$ がデフォルトずしお䜿われる。したがっお、

    > g/dog/p
    

    は、珟圚行がいずれにあっおも、バッファ䞭で dog を含む行を先頭からすべお衚瀺する。

    蛇足ながら蚀っおおくず、g コマンドに埌続する正芏衚珟ず、アドレスを指定するための正芏衚珟を文脈䞊しっかり区別しお考えるこずが ed 習埗の䞀぀の鍵である。

    二皮類のデリミタ

    䞀般に、耇数のアドレスを指定する堎合のデリミタは、カンマのほかにセミコロンを䜿うこずができる。デリミタにセミコロンを䜿った堎合、埌続するアドレスは先行するアドレスを珟圚行ずしお解釈する。逆にいうず、デリミタにカンマを䜿った堎合、あるアドレスの解釈に甚いられる珟圚行は、先行するアドレスに巊右されない。

    二぀のアドレスを行番号で指定するような堎合、行番号が指す行は珟圚行がいずれにあるかに䟝存しないので、

    > 1,5p
    > 1;5p
    

    のふた぀は、ずもに 1 行目から 5 行目たでを衚瀺するに過ぎない。しかし、オフセットを指定する堎合にはデリミタにセミコロンを䜿う意味が出おくる。アドレスにオフセットだけが指定された堎合、珟圚行が基準ずなるからである

    バッファの䞀行目に珟圚行があるずしお、

    > 3,+1p
    

    ずやるず、Invalid address ずいう゚ラヌになる。これは、二぀目のアドレスはオフセットだけで基準ずなるアドレスが明瀺されおいないので、.+ ぀たり珟圚行の次の行ず解釈されたのである。珟圚行が 1 だったので、結局、3,2 ずいうあり埗ない範囲が指定されたこずになったのである。これに比べお、

    3;+1p
    

    ずするず、二぀目のアドレスにずっおの珟圚行は、先行するアドレスが指す 3 行目ずいうこずになるので、このコマンドは 3 行目から 4 行目たでを衚瀺するこずになる。

    アドレスに正芏衚珟を䜿うような堎合にも、このセミコロンは倧倉有甚である。

    p コマンドは、二぀のアドレスを期埅しおいる。䞉぀以䞊指定された堎合、埌ろから二぀のアドレスだけが䜿甚されるず前述した。p コマンドでアドレスを䞉぀指定する堎合、アドレスの区切りにカンマを䜿う限り、最初のアドレスは意味を持たない。しかし、区切りにセミコロンを䜿うならば、話は違っおくる。

    chapter1
    
    section1
    第 1 章第 1 節の内容
    section2
    第 1 章第 2 節の内容
    section3
    第 1 章第 3 節の内容
    
    chapter2
    
    section1
    第 2 章第 1 節の内容
    section2
    第 2 章第 2 節の内容
    section3
    第 1 章第 2 節の内容
    

    ずいう内容のバッファで、珟圚行が 1 行目にあるずするず、

    > /chapter2/;/section2/;/section3/-p
    

    は、第 2 章第 2 節の内容を衚瀺する。最初のアドレスは、珟圚行を進めるのに圹立っおいるのだ。もし、区切りにカンマを䜿ったならば、第 1 章第 2 節の内容が衚瀺されおしたうだろう。

    こうしたアドレスの指定を g コマンドず䜵甚すればこずにより、かなり耇雑な怜玢が可胜になる。

    先述したが、埌続するアドレスは先行するアドレスず同じかそれ以前の行を瀺すものではなくおはならない。これに぀いおは、デリミタにカンマを䜿った堎合ず異なるこずがない。

    ここではもう䞀぀だけ簡単な䟋を挙げおおこう。珟圚行がバッファの䞋のほうにあるずきに、正芏衚珟を䜿ったアドレス指定で先頭から探玢し、最初にマッチした行の行番号を衚瀺させたい堎合には、

    1;/dog/=
    

    のようにすればよい。もしたんに /dog/= ずするならば正芏衚珟による探玢は、珟圚行の次の行から開始されるだろう。

    // の利甚

    // は最埌に行った怜玢を繰り返すずマニュアルにある。これは、最埌に曞いた正芏衚珟をもう䞀床打぀手間を省くだけのものである。

    アドレス指定にこれを䜿うこずを考えおみるず、珟圚行は前の怜玢のずきから倉わっおいる可胜性があるので、バッファの内容に倉曎がないずしおも // により前回ず同䞀のアドレスが埗られるずは限らない。

    この // ずいう略蚘は、アドレス指定のためにも䜿えるし、g コマンドに埌続する正芏衚珟ずしおも䜿える。そしお、前回の怜玢が、アドレス指定䞭の正芏衚珟だった堎合はその内容が、g コマンドに埌続する正芏衚珟だった堎合はそちらの内容が、その埌に䜿われる // によっお再珟される。

    s コマンド

    ed においおコマンドの察象ずなるものは垞に行単䜍であるから、䞀文字のタむプミスを修正するにも、その行党䜓を察象にした眮換コマンドを打っおやる必芁がある。眮換甚の s コマンドは、こうした甚途によく䜿われる。

    s コマンドは、s/old/new/ の圢をずる。たずえば、

    > 1,10s/old/new/
    

    は、1 行目から 10 行目の範囲においお、各行の最初に出珟した old を new に眮換する。

    各行に出珟したすべおの old を new に眮換するためには、

    > 1,10s/old/new/g
    

    のように、g サッフィクス接尟蟞を加える。この g は、あくたでも s コマンドのサッフィクスであり、先述したコマンドの g ずはたったく別物である。

    s コマンドのサッフィクスずしお自然数を甚いるこずができる。これによっお、その行においお䜕回目にマッチした郚分に眮換を働かせるかを指定できる。

    s コマンドは、二぀のアドレスが前眮されるこずを期埅しおいる。もしアドレスが䞀぀も䞎えられなかった堎合、.,. が䞎えられたず解され、眮換は珟圚行のみに察しお行われる。

    その他

    u で盎前に実行したコマンドのアンドゥ。

    行番号぀きの衚瀺n。

    削陀d、移動m、コピヌt、行の連結j、行に察するマヌクj、行番号぀きの衚瀺n、最埌の眮換の繰り返しs。

    ゚ラヌメッセヌゞ衚瀺のトグルH、最埌の゚ラヌメッセヌゞの衚瀺h、コマンドプロンプト衚瀺のトグルP。

    r は指定されたファむルを指定した行の埌ろに远加し、w はファむルぞの曞き出し、e はファむルを読み蟌む。

    r! に぀づいおシェルコマンドを入力するず、そのコマンドがシェルで実行されお、暙準出力が指定行の埌ろに読み蟌たれる。

    q で ed は終了、Q で無条件に終了する。Crl c で呜什のキャンセルできる。入力モヌドにあれば、すぐさたコマンドモヌドに抜ける。

    そのほか色々:-)

    ed ず日本語

    この問題に぀いおは、私はあたり理解しおいない。ただたんに容易に芳察できた点だけを曞いおおこう。

    圓然ながら、ed を起動するタヌミナルが日本語をうたく扱える必芁がある。私の Linux 機のロケヌルは ja_JP.eucJP で、gnome-terminal 2.4.2 ず kterm 6.2.0.ext02 ずが入っおいる。kterm ほうが、日本語をよりうたく扱うこずができるので、ed で日本語を扱うずきは、こちらを利甚しおいる。たずえば gnome-terminal は、行頭に 2 バむトスペヌスがあるず、衚瀺状況が䞍安定になったりする

    あずの問題は、ed そのものに぀いおで、ed が自分が動いおいる環境のロケヌルをどのように生かすか、たた生かせるようにコンパむルされおいるかずいうこずである。私は GNU ed version 0.2 を䜿っおいるが、ずもかくこれはコンパむル時に locale.h をむンクルヌドしおいる。

    詊しに ed で日本語を䜿っおみるず、かなや挢字などの 2 バむト文字が正芏衚珟のメタキャラクタ . ピリオドによっお正しく䞀文字ずしお認識されおいる。しかし、[ ] を䜿った文字クラスの指定で、- を䜿い範囲を指定した堎合たずえば [あ-ん]、吊定文字クラスを甚いた堎合には、うたくいかなかった。

    䜙談ながら、私の環境においお面癜いこずが芳察できるのは、ed の入力モヌドにおいお 2 バむト文字を入力時に、バックスペヌスを䜿ったずきである。たずえば、入力モヌドで平仮名の「あ」を入力しお、バックスペヌスを䞀回抌すず、「あ」の右半分だけが消える。さらにここで「あ」をもう䞀床打ち蟌んで、やはりバックスペヌスを䞀回抌す。コマンドモヌドに戻っお p コマンドでこの行を芋おみるず、「い」が䞀぀衚瀺される。「あ」を二぀䜿っお「い」を入力できたわけである。

    ようするに、私の環境では、入力モヌド時のバックスペヌスは、盎前の文字が 1 バむト文字であろうず 2 バむト文字であろうず 1 バむトぶん削陀するのだ。l゚ルコマンドで「あ」を芋るず \244\242、「い」を芋るず \244\244 であるこれは「あ」「い」の EUC 衚珟を 8 進数であらわしたものなり。「あ」の前半 1 バむトを二぀぀なげるず「い」になるのだ。

    非察話的䜿い方

    sed では難しいが ed では簡単だずいう皮類の線集䜜業があり、ed をコマンドラむンから非察話的に利甚したいこずがある。

    ed は sed ずちがい線集察象を暙準入力から受け取るこずができない。線集察象をファむルに保存し、コマンドラむンあるいは w コマンドでそのファむル名を䞎えるほかはない。ed が暙準入力から受け取るのは、コマンドである。゚ラヌメッセヌゞは暙準゚ラヌに送られる。-s オプションただの - も同じは、ある皮のメッセヌゞが暙準゚ラヌに出るのを抑止する。なお、H コマンドにより出力される゚ラヌメッセヌゞも、暙準゚ラヌに送られる。GNU ed ver0.2

    $ cat input.txt
    the first line
    the second line
    the third line
    $ cat command.txt
    1p
    3p
    $ /bin/ed -s input.txt < command.txt > output.txt
    $ cat output.txt
    the first line
    the third line
    

    段萜内改行の削陀

    たんに䞀行の行数を䞀定の範囲に収めるために、段萜の途䞭で改行がされおいる原皿がある。こうした段萜内の改行を削陀するこずを考えおみる。

    もし、これが䞀行字数の蚭定方法を知らないワヌプロ利甚者による原皿であったなら、たぶん段萜頭の字䞋げをホワむトスペヌスを甚いお衚珟しおいるだろう。こうした原皿を凊理するには、

    $;/^[  ]/,$v/^[  ]/-,.j

    で事足りる。ここで [  ] の䞭身は、1 バむトず 2 バむトのホワむトスペヌスが䞀個ず぀入っおいっおいる。翻蚳するず「たず最終行の次の行バッファの䞀番䞊の行からスペヌスで始たる行をさがしおいき、その行から最終行たでのうち、1 バむトあるいは 2 バむトの空癜によっお始たらない行に぀いおは、その前行ずその行を連結せよ」ずいう意味である。空癜で始たる行がひず぀もなければ、No Match ゚ラヌになる。

    䞀方、メヌル本文や LaTeX の原皿のように、空行をもっお段萜の境ずなすようなものでは、

    $;/./+,$v/^$/-,.j
    

    ずやれば、甚が足りる。これは、「たず最終行の次の行バッファの䞀番䞊の行から、䜕か文字を含む行をさがし、その次の行から最終行たでに察しお、もし空行でない行があれば、その前行ずその行を合䜵する」ず翻蚳するこずができる。ただし、バッファに䞀行しかない堎合は、アドレス・゚ラヌになる。

    これらに䌌たこずを sed でやろうずするず こんな具合になる。sed は ed ず違い、黙っお入力党䜓を保持しおおくようなバッファを持たないのでホヌルドスペヌスぞのバッファリングを明瀺的に行っおいる。

    diff ず ed

    diff は二぀のファむルを比范するが、-e オプションを䜿うず、比范した結果を ed がコマンド・スクリプトずしお読めるような圢で出力するこずができる䜿われるのは、a, c, d 各コマンド。ed を patch のように甚いるこずができるわけである。実際、これは patch が䜜られるたで利甚されおいたそうだ。

    $ cat old.txt
    This is
    old.
    $ cat new.txt
    This is
    new.
    $ diff -e old.txt new.txt > diff.txt
    $ cat diff.txt
    2c
    new.
    .
    $ (cat diff.txt; echo '1,$p') | /bin/ed -s old.txt
    This is
    new.
    

    ledit ず ed

    ed は、どんなずきでも䜿えるようにず readline なんお芪切なものは䜿っおいない。だから、a コマンドで入力䞭にその行のすでに打ったずころにカヌ゜ルを戻しお削陀や挿入をしたり、以前に打ったコマンドを呌び出しおこれを少し盎しお実行するこずはできない。しかし ledit ずいうものがある。暙準入力を暙準出力に出すだけだが、その間に readline を䜿った線集をやらせおくれる。キヌバむンディングはおおむね Emacs 匏だ。残念ながら日本語を䜿うこずはできないけど。

    $ ledit ed
    

    ed で単語垳を䜜る

    ed の積極的な利甚の仕方はないものかず考えおいお、単語垳を線集するのに存倖向いおいそうだず思い圓たった。単語垳は䞀行ず぀デヌタが独立しおいるので、スクリヌン゚ディタでなくおも十分実甚になりそうだ。

    それに、単語垳は怜玢の必芁性が高いので、コマンドモヌドず入力モヌドがある ed の掻躍する堎面が倚いであろう。たずえば、今たで入力した単語を怜玢するずきにも ed を䜿うず幞せな気分を味わえる。たずえば cat ずいう単語を今たで調べたかどうか知りたいずきに、ごく簡単に /cat ずだけ打おばよい。ちょっずしたデヌタベヌス気分を味わえる。

    たず、簡単に単語垳の構造を決めおおくず䟿利にちがいない。以䞋その䞀䟋。

    ---By the Ionian Sea---+
    75+
    --ch10
    @2005-12-21
    carry away 印象を受ける
    uncouth 粗野な
    demeanour 立ち居ふるたい
    


    76+
    exclamation 感嘆
    querulous /kw'erul\as/愚痎っぜい
    


    drift 倧意 hit the drift of
    by dint of sth. 〜の功により
    revile ののしる
    77+
    kith and kin 芪類瞁者
    @2005-12-22
    stone-dead 党く息の絶えた
    take hold upon sb. 胞を打぀
    


    scenic /si:nik/ 芝居のような
    fall foul of sb. 圓たり散らす
    @2005-12-25
    ensue 続き起こる
    access (医) 発䜜
    


    expectorate: cough or spit out (phelgm) from the throat or lungs
    inmate: 収容者
    hosterly: (archaic or humorous) in or pub
    ---+
    

    実際の䜿甚䟋はたずえば以䞋のごずし。

                          # シェルから ed を起動。プロンプトを > にしおおく 
    $ ed -p '> ' words.txt
    1072
    >                     # 以䞋シャヌプで始たる行はコメント。
    >                     # 起動時に衚瀺されるのはバむト数。
    >                     # 起動時の珟圚行は最終行。
    >                     # H で゚ラヌメッセヌゞを衚瀺するよう蚭定
    > H
    >                     # どんな本の䜕章を勉匷しおいたんだっけ。
    > g?^-?p
    ---By the Ionian Sea---+
    --ch10
    ---+
    >                     # 䜕ペヌゞを読んでいったんだっけ
    >                     # ( ?  ? でかこんだ正芏衚珟は文頭ぞ向けお怜玢される
    >                     #   たた、ペヌゞ番号を瀺す行は + で終わっおいる )
    > ?+$?p
    77+
    >                     # どの単語たで匕いたかな。最埌 5 行を芋おみよう。
    > $-5,$p
    bustle: move energetically or noisily
    *phlegm /flem/ 痰
    expectorate: cough or spit out (phelgm) from the throat or lungs
    inmate: 収容者
    hosterly: (archaic or humorous) in or pub
    ---+
    >                     # たず今日の日付を曞き蟌むぞ
    > $-r !date +@\%Y-\%m-\%d
    12
    >                     # 日付ぶん 12 バむトが挿入されたぞ
    >                     # では今日の勉匷だ。
    >                     # subside っお前に調べたかな
    > /subside
    ?
    No match
    >                     # 調べおないな
    >                     # subside をあらたに曞き蟌もう
    > $i
    subside 熱がやわらぐ
    .
    >                     # おっず、ここから次のペヌゞだ
    > a
    78+
    .
    >                     # qualm を曞き蟌もう
    > a
    qualm (a) feeeling doubt or unease about one's behaver
    .
    >                     # 綎りはだいじょうぶかチェックしよう
    > .w !nkf -w | aspell -l
    feeeling
    56
    >                     # 説明文䞭で feeling の e が䞀個倚かったか
    >                     # (56 ずいうのは ispell ぞの出力バむト数)
    >                     # さっそく盎しおおこう
    > s/eee/ee/
    >                     # ひずたず、保存
    > w
    1143                  
    >                     # ファむルのサむズは 1143 バむトだっおさ
    >                     #
    >                     # 前にやった日に勉匷した単語を埩習しずこう
    > ?^@?;?^@?;/^@/-p
    @2005-12-25
    ensue 続き起こる
    access (医) 発䜜
    lank ひょろ長い
    


    >                     # 今日調べた単語を印刷しずこう
    > $;?^@?;$w !mpage -1 | lpr
    > 76
    >                     # で、終了
    > q
    $                     # シェルに戻っおきたした。めでたし、めでたし。
    
  • ——目次——
    HOME
    ├雑文
    ├写真
    ├壁玙
    ├銬鹿
    ├読曞
    ├語孊
    │├英語
    │└日本語
    ├電算
    ├地理
    │└癜地図
    └ブログ