一个无聊的AWK大师能不能转换这个Python程序?

Noc*_*wer 2 python comparison awk lazy-evaluation

我喜欢Python,但并不真正关心AWK.为了进行比较(以及查看Python-to-AWK主机如何执行此操作),有人可以在AWK中重写以下Python程序吗?考虑到它有多短,有些人会认为重写对于有一点时间的人来说简单易行.

import os

ROOT = '/Users/Zero/Documents/MyProgram.app/Contents/TempFiles'
ID = '628251 173511 223401 138276 673278 698450 629138 449040 901575'.split()

def main():
    for name in os.listdir(ROOT):
        if '.log' in name.lower():
            path = os.path.join(ROOT, name)
            if os.path.isfile(path):
                data = open(path, 'rb').read()
                for line in data.split('\r'):
                    for number in ID:
                        if number in line:
                            print line
                            break

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

Dav*_*har 6

为什么awk?

这看起来像是一个简单的grep命令给我; 就像是:

egrep -w '628251|173511|223401|138276|673278|698450|629138|449040|901575' /Users/Zero/Documents/MyProgram.app/Contents/TempFiles/*.log*
Run Code Online (Sandbox Code Playgroud)

更新:或者使用find + grep,如某些注释中所建议的,如果要进行递归搜索