最新閲覧日:

awkで、1つのファイルから複数のファイルを作りたいのですが、どのような命令を書く必要があるでしょうか。
具体的には、1行ごとに整形したものを別ファイルに保存されるようにしたいのです。BASICのように、ファイルのオープン、クローズの命令があるのでしょうか?
awkはgawk32+おーくの友達v094bで使っています。テキストの遊園地(http://homepage2.nifty.com/mozu/koza/park_of_tex …)がとてもわかりやすく書いてあるので、ここでawkを勉強しているのですが、リファレンス的なものも欲しいので、わかりやすいリファレンスになっているサイトやファイル(申しわけありませんが、日本語になっているもので)があれば、そちらの紹介もお願いいたします。

A 回答 (1件)

> awkで、1つのファイルから複数のファイルを作りたいのですが、どのような命令を書く必要があるでしょうか



シェルのリダイレクトのように書けます。

print $0 >file

例えば、入力を、それぞれの行毎に "行番号.txt" に出力するような
スクリプトは、

{
 fn = NR ".txt";
 print $0 >fn;
 close(fn);
}

という感じです。キーポイントは「開いたファイルを close する必要がある
こと」です。

ある程度の数であれば、クローズする必要はないんですけど、同時に開いて
おけるファイルの数が、awk の実装毎に決まっているはずなので、対象の
ファイルが多いのであれば、きちんと close しなくてはいけません。


> リファレンス的なものも欲しい

とりあえずは、man でしょう。Windows で使ってるんでしょうか?
であれば、参考URLで、gawk のマニュアルが読めます。

perl に押されて、awk の実用的なページって意外と見つからないのですが
こちらのページも参考になるかと。

http://aoki2.si.gunma-u.ac.jp/Hanasi/Algo/
http://aoki2.si.gunma-u.ac.jp/Hanasi/Algo/awk.html

参考URL:http://www.linux.or.jp/JM/html/GNU_gawk/man1/gaw …
    • good
    • 0
この回答へのお礼

なるほど、DOSのコマンドプロンプトのようなものですね。(Unix使いではないので、こういう理解になって良いですよね?)
数十個のファイルになってもらう予定なので、きちんとcloseすることにします。
明示的にopenしなくても、自動的にopenしてくれるというのは便利ですね。自動的にclose……って一瞬考えたのですが、プログラムがそれを判断するのは無理ですね(^^;)

ともあれ、素早い対応に感謝いたします。

お礼日時:2001/07/22 17:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ