• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:awkでの複数のファイルへの出力)

awkで複数のファイルへの出力方法とリファレンスサイトの紹介

このQ&Aのポイント
  • awkを使用して、1つのファイルから複数のファイルを作成する方法について教えてください
  • 具体的には、1行ごとに整形したものを別ファイルに保存するための命令を知りたいです
  • また、awkのリファレンスとなるわかりやすいサイトやファイルがあれば、お教えいただけますか

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.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/gawk.1.html
noname#4643
質問者

お礼

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

関連するQ&A