OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

awkでの複数のファイルへの出力

  • 困ってます
  • 質問No.107826
  • 閲覧数2536
  • ありがとう数4
  • 気になる数0
  • 回答数1
  • コメント数0

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

質問者が選んだベストアンサー

  • 回答No.1
レベル14

ベストアンサー率 50% (1122/2211)

> 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
お礼コメント
noname#4643

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

ともあれ、素早い対応に感謝いたします。
投稿日時 - 2001-07-22 17:46:05
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ