大多数解决方案都从 python 调用 awk。但我想反过来做。我有一个从文件中提取信息的 python 脚本。然而,所述文件名在 awk 脚本的列中引用。
如何向 python 传递参数“%s20s”、文件名并从标准输出获取输入?我想将输出添加为多列。
谢谢你的例子
Cheers
awk 变量 FILENAME 给出当前正在处理的文件的名称(如果是标准输入则为“-”)。然而,这在 BEGIN 块中不可用,但您可以使用 ARGV[1] 代替(假设您只传递一个文件名):
#!/bin/awk -f
BEGIN {
cmd = "./myscript.py '\"%s20s\"' " ARGV[1]
print cmd
cmd | getline var
print var
}
我用于测试的Python脚本(py3)是:
#!/usr/bin/python
import sys
print(sys.argv)
所以我得到以下输出:
/home/user1> runit.awk afile
./myscript.py "%s20s" afile
['./myscript.py', '"%s20s"', 'afile']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)