2

次のような AWK 関数を記述します。

  function inser_styles(path_to_files, output_file) {
    for each input_file in path_to_files {
      print "" > output_file;
      while ( getline < input_file ) {
        print "   " $0 > output_file;
      }
    }
    print "" > output_file;
  }

あるディレクトリからファイルを読み取りpath_to_files、それぞれのすべてのコンテンツを空行で区切ってinput_filesomeに配置する必要があります。output_file

for each input_file in path_to_files {...}- ループはどのように見えるでしょうか? awk はこの種の for ループをサポートしていますか、それとも extern execute of でファイル名配列を読み取る必要がありlsますか?

4

1 に答える 1

1

ユーティリティを使用しfindてファイル名を取得できます。ファイル名に改行が含まれている場合、これは正しく機能しないことに注意してください。で使用する追加オプションを指定しますfind

function insert_styles(path_to_files, output_file) {
    cmd = "find " path_to_files " -maxdepth 1 -type f"
    while (cmd | getline input_file > 0) {
        print "" > output_file;
        while ( getline < input_file ) {
            print "   " $0 > output_file;
        }
        close(input_file)
    }
    close(cmd)
    print "" > output_file;
}
于 2012-09-07T14:06:06.690 に答える