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)
为什么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,如某些注释中所建议的,如果要进行递归搜索