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_file放入 someoutput_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 回答