首页 > 解决方案 > 从python执行awk(将输出重定向到文件)

问题描述

以下 awk 命令将文件名附加到日志文件的每一行

awk '{print FILENAME " " $0}' progress.log > progress_temp.log

如何从 python 执行这个 awk 命令

能够执行以下命令 subprocess.run(["awk", "{print FILENAME \" \" $0}", "progress.log"]) 但它不会将输出重定向到 progress_temp.log 并且不想在 python 中处理该部分。

标签: pythonbashawk

解决方案


您可以指定stdout参数以将输出保存到特定文件中:

import subprocess
with open('progress_temp.log', 'w') as fw:
    subprocess.run(["awk", "{print FILENAME \" \" $0}", "progress.log"], stdout=fw)

推荐阅读