gawk-预处理具有动态扩展名的文件

gawk-预处理具有动态扩展名的文件,awk,preprocessor,Awk,Preprocessor,我开始修补gawk的动态扩展,我想为awk将要操作的文件实现一个预处理器。具体地说,我想在gzip文件作为参数传递给gawk时解压它们。例如,调用类似于: awk -f myscript.awk file1.gz file2.gz file3.gz 而myscript.awk会以某种方式调用一个动态扩展来预处理每个输入文件,并在将内容提供给awk的模式操作语句之前对其进行解压缩。动态扩展是否能够进行这样的预处理?它看起来像什么 稍后,我想创建一个类似的扩展,在传入awk之前对文件进行解码、解密

我开始修补gawk的动态扩展,我想为awk将要操作的文件实现一个预处理器。具体地说,我想在gzip文件作为参数传递给gawk时解压它们。例如,调用类似于:

awk -f myscript.awk file1.gz file2.gz file3.gz
而myscript.awk会以某种方式调用一个动态扩展来预处理每个输入文件,并在将内容提供给awk的模式操作语句之前对其进行解压缩。动态扩展是否能够进行这样的预处理?它看起来像什么


稍后,我想创建一个类似的扩展,在传入awk之前对文件进行解码、解密等。对于这些任务,我通常会对文件进行预处理,然后通过管道传输到awk或类似文件中,但总有缺点。如果动态扩展可以预处理文件,我应该能够避免这些缺点。

gawk extlib邮件列表上的一个问题得到了指向以下内容的回复:


看起来这应该可以做到

这对你有帮助吗?我不确定您是否可以在
.awk
文件中执行此操作(由awk使用
-f
选项读取)。创建一个简单的
.sh
bash脚本来预处理文件并在该脚本中调用awk可能会更容易。谢谢Corentin。我以前在项目中使用过许多类似的策略,但它们有我想要克服的缺点(例如,文件名有用性的丧失、FNR/NR有用性的丧失、需要多次调用awk等)。但是,当我阅读扩展API文档时,我对它是否允许以我想要的方式预处理文件感到不那么乐观。也许可以尝试切换到Python,它有很多库来处理这些问题:)我同意Python能够很好地处理这些问题,但出于各种原因,我对awk解决方案感兴趣。