我有一个文件夹,里面全是名为 000.txt 到 181.txt 的文本文件。如何使用同一个 awk 脚本 (program.awk) 处理所有这些文件(在命令行上)并将它们发送到各自的输出文件 (output000.txt - output181.txt)?
答案1
假设我们有一个文件夹,里面全是名为 000.txt 到 181.txt 的文本文件。下面是一个使用相同 awk 脚本处理所有这些文件并将它们发送到相应的输出文件(output000.txt - output181.txt)的示例:
awk 'NR>6{print>("output" FILENAME)}' {000..181}.txt
如果我们使用bash
,那么{000..181}.txt
将扩展为我们的 182 个输入文件的名称。
在 awk(这可能需要 GNU awk)中,FILENAME
是 awk 当前正在处理的输入文件的名称。因此,这("output" FILENAME)
是我们当前输出文件的名称。
以上代码仅作为示例,将输入文件除前六行之外的所有内容打印到输出文件中。更复杂的程序将使用相同的原理。