Windows3.1からWindows98へと移り来て、パソコン環境が便利になってきていると感じるとともに、手作業が増えて来ているとも感じる。モニタを見ながらの手作業ができるのは、便利なようでいて、実はパソコンに向かっている時間が無意味に増えたり、目や肩や腰を疲れさせたりしていて、却って不便になっているのではないだろうか。パソコンを使っているのではなく、パソコンに時間や労力を吸い取られているのではないだろうか。
Windows 以前の MS-DOS の環境では、batchファイル書いて、手作業を避け、出来るだけ自動実行させるようにしていた。そうしているうちに知ったのが awk という簡易言語だった。いろいろなスクリプトを書いて、便利に使ってきた。FD というファイラーがあったから、Windows3.1 を使い出したのは1994年の10月だった。(すぐに Windows95 がでて、乗り換えた)
現在の Windows98 環境でもDos上でJGAWKを使っている。ファイルやフォルダを指定して右クリックすると「送る」メニューが出てくる。そこにいろいろなスクリプトを実行するbatchファイルのショートカットを並べていて、実行したいスクリプトを指定している。
(ショートカットはc:\windows\sendto¥のなかにコピーしておく)
窓を二つ開かなくていいので、便利である。
以下に述べるのは、実際どのように使っているのかという話である。テキストファイルを扱うことが多くて手作業に忙殺されている方には参考になるだろう。スクリプトを書くというのは少し難しいかもしれないけれど、簡単な作業をさせるスクリプトはとても簡単である。
そして、以下で取り上げたスクリプトとbatchファイルは、自由に使って頂きたい。
関連
今日は教育実習の研究授業の指導に行った。デジタルカメラ(RICHO DC-3)で、授業風景を40枚ほど写した。これをフロッピーディスクにコピーして実習生にあげるのである。家にあるカラープリンターでは見栄えの良いものが印刷できないし、デジタルカメラの画像が一番綺麗に見えるのは、やはりモニタ上であるから。
単に画像ファイルをフロッピーディスクに詰め込んでも面白くないので、BGMつきのスライドショーになるhtmlを作る。
関連
MicroSoft の WEB PAGE で公開している MPlayer2 は play list に対応しているので、なかなか良いのだが、改善点がある。それは、ランダム再生と現在再生中のファイル名の表示である。次々再生してくれるのはうれしいのだが、今の曲は何と言う曲名だったかが分からない。それと、いつも決まった順番で(play listの順番)しか再生しないのは、つまらない。
そこで、不充分ではあるが、rand.awkスクリプトを書くことで、それへの対応を図った。
ランダム再生は、元のplay listをシャッフルしてやれば良いことだから、簡単である。
そして、
関連
注意 最近のwindows98プリインストールパソコンには、Mplayer2が入っているのだけれど、MP3やplaylistに対応するためには、MicroSoft の WEB PAGE で公開している Mplayer2を再インストールしなければならないようです。
小專国語と国語学概論では、毎回のように「本日のお題」を課して、短い作文を書かせる。それが、出席の証である。ところが、それを記録しておくのが一苦労である。80枚の提出物を番号順に並べて、表計算ソフトに入力するのは、1回2回なら我慢できるが、毎週2回やらなければならないとなると、苦痛である。(教務手帳に手書きするという方法は、期末にまとめて入力すると言う点が嫌である)
そこで、HP200LXという小さいパソコンに内蔵されたデータベースを使って出席の記録を取っている。そのデータベースにはインクリメントサーチと言う機能があって、一文字入力すると、それを元に検索し、次の文字を入力するとさらに検索しという具合に、検索を半自動的に行うのである。そこで、学籍番号を逆にした文字列を検索codeとして入れておいて(991011という学籍番号であれば、検索codeは110199)、提出物の学籍番号の1の位から10・100の位の順で検索をすると、当該の学生のカードが出てくる。小專国語なら最大3桁を入力すればよい。1桁でヒットする時もあって、とても嬉しい。国語学概論は単位取り忘れの3・4回生が混じるので、5桁まで入力しなければならない場合がある(学科番号2桁・名簿番号2桁が同じで、年度の1桁目が違う)、しかたない。
ともかく、そのようにして収集した出席データをパソコンに移して、集計するのであるが、出席の数だけ合計するということなら、なにも表計算ソフトを起動して、ファイルを読みこんで、1人分の合計の式を書いて、それを人数分コピーしてという作業をすることはないのである。
作ってあるsum.awkを使う。ファイルを指定して、右クリックで「送る-sum」で、デスクトップに合計が書き足されたファイルが出来あがる。
関連
のなみの研究では文章を1文ごとに切って、文番号をつけたものを資料とすることが多い。手作業でやると、きっと間違えてしまう。そこで、ある程度まではパソコンにやらせる。
会話文の中の「。」句点も1文とするのなら、「。」を「。」と改行に置換するだけで1文ごとに切れたことになるのだけれど、
「……。……。」と彼は言った。
という文の場合は、他の文との整合性を考えた場合、会話内の文を無視して、
……と彼は言った
という1文であると考えたほうが良い。
そこで、「」内の句点を無視するための1bn.awkを書いて、使っている。
ただ、これでも、
「……」「……」
というように句点が使われていないで会話文が連続している場合は、文に切らないので、目でチェックしないといけないのであるが、そういう場合はめったにないし、処理が複雑になるばかりなのでこのまま使っている。
文番号をつけるのは、簡単で、
jgawk -f1bun.awk 処理対象ファイル | jgawk '{ print NR,$0}' > 処理済ファイル
と「jgawk '{ print NR,$0}'」という one liner(一行野郎)に渡してやればいいだけである。
関連
文章中の語彙頻度を調べると、ただ読んでいるだけでは気づかないことに気づかされることがある。ただし、本当に語彙頻度を調べるとなると、日本語で書かれた文章の場合は単語に切ってやらなければならないので大変である。大雑把なところが分かればいいのだし、日本語の文章の中心語は漢字やカタカナで表記されることが多いので、かなで表記された部分以外を中心語として抽出してやればよい。goi.awkを書いた。
かな文字列を「\f」に置換し、「\f」をデミリタとして使うことで、漢字文字列やカタカナ文字列を切り出している。
そして、goi[]という連想配列に入れて、頻度をカウントし、最後にsortというソートプログラムに渡して頻度順のファイルを作っている。
梶井基次郎の「檸檬」を処理すると
数 | 語 | 数 | 語 |
---|---|---|---|
58 | 私 | 10 | 何 |
18 | 出 | 8 | 心 |
17 | 来 | 8 | 上 |
17 | 見 | 8 | 重 |
12 | 街 | 8 | 好 |
11 | 思 | 7 | 歩 |
11 | 云 | 7 | 中 |
10 | 檸檬 | 7 | 其処 |
10 | 美 | 7 | 丸善 |
10 | 行 | 以下略 |
関連
文章表現を教える時には、説明に使うのに適当な文章を印刷して配布する。単に配布するだけだと、学生はしっかり読まないことが多い。すると、説明の効率が落ちてしまう。
簡単な空欄補充問題にしておくと、解答しなければという気持ちになって、文章をしっかり読みこむ学生が増える。また、その時間の説明の内容に即した空欄補充問題を作っておくと、説明の効率はアップする。例えば、「随筆文における副詞の役割」を説明する時に、文章中の副詞を空欄にしておいて選択させると、副詞どうしの比較や文脈上の副詞の役割に気がつきやすくなる。あるいは、文章中のキーワードを空欄にしておくと、そのキーワードに意識が集中して、文章全体を理解しやすくなる。
------^言葉と自己規定 鈴木 孝夫--------- 「私」や「僕」のように、話し手か自分をさして使う言葉は、考えてみると話し手が言語という一種の座標系の内部で、*自分自身*の位置を明らかにする行為であるといえる。つまり言語による*自己規定*なのだ。 欧米の言語や、トルコ語、アラビア語などのように、話し手が自分に言及する言葉つまり自称詞が、実際問題としてはほとんど*一人称代名詞*に限られるような言語では、この一人称代名詞の働きとは、簡単にいえば自分が*話し手*であることを、言葉で明示する機能だといえよう。今しゃべっているのは、ほかでもないこのおれだということを言葉で示すこと、しかもこれ以外の情報は何ひとつ話し手に関して与えないのが、例えば、英語で I と言い、ラテン語で *ego* と言う行為の意味なのである。 このタイプの自称行為の特徴は、話し手の言語的自己規定が、相手および周囲の情況とは*無関係*に、自発的、独立的になされることである。つまり*相手*が存在しなくてもかまわない。いやそれどころか、相手の存在を認識するに先んじて、自己の認識が言語によって行われるのだというべきであろう。 なぜかといえば、話者が自己をこのように能動的言語行為者として言語的に確認した結果としてのIが決まって、初めてこのIに対立する対象としての、話の相手が*受動的言語行為者*として言語的に you として把握されるに至るからである。認識の順序からいえば、I → you となるわけだ。 *ところが*日本語では、この順序がちょうど逆になっていると考えないわけにはいかない。 ------言葉と自己規定 鈴木 孝夫 以下略$--------- |
空欄にしたい部分を「*」でくくっておいて、
jgawk -fbr2.awk %1 > c:\wondows\デスクトップ\kuuran.txt
に渡せば、次のようなファイルが出来あがる。
------^言葉と自己規定 空欄補充問題--------- 「私」や「僕」のように、話し手か自分をさして使う言葉は、考えてみると話し手が言語という一種の座標系の内部で、【1】の位置を明らかにする行為であるといえる。つまり言語による【2】なのだ。 欧米の言語や、トルコ語、アラビア語などのように、話し手が自分に言及する言葉つまり自称詞が、実際問題としてはほとんど【3】に限られるような言語では、この一人称代名詞の働きとは、簡単にいえば自分が【4】であることを、言葉で明示する機能だといえよう。今しゃべっているのは、ほかでもないこのおれだということを言葉で示すこと、しかもこれ以外の情報は何ひとつ話し手に関して与えないのが、例えば、英語で I と言い、ラテン語で 【5】 と言う行為の意味なのである。 このタイプの自称行為の特徴は、話し手の言語的自己規定が、相手および周囲の情況とは【6】に、自発的、独立的になされることである。つまり【7】が存在しなくてもかまわない。いやそれどころか、相手の存在を認識するに先んじて、自己の認識が言語によって行われるのだというべきであろう。 なぜかといえば、話者が自己をこのように能動的言語行為者として言語的に確認した結果としてのIが決まって、初めてこのIに対立する対象としての、話の相手が【8】として言語的に you として把握されるに至るからである。認識の順序からいえば、I → you となるわけだ。 【9】日本語では、この順序がちょうど逆になっていると考えないわけにはいかない。 問 1 次の語群から、【1】〜【9】に埋める語句を選んで、記号で答えよ。
(本当は、ここに、改ページコードの^Lが挿入してある) ■ 解答
------言葉と自己規定 空欄補充問題$--------- |
関連