在python脚本中使用awk
我必须在python脚本中使用awk打印 下面是我使用的格式在python脚本中使用awk,python,linux,python-2.7,awk,Python,Linux,Python 2.7,Awk,我必须在python脚本中使用awk打印 下面是我使用的格式 a = commands.getoutput(" ls -l | awk \'{print $1, $2}\' | awk \'{if(NR>3)print}\'" 我得到以下错误: KeyError: 'print $1, $2' 谁能帮我修理一下吗 您的Awk脚本可以简单地简化为单个脚本。这里没有任何东西真正需要使用Awk from subprocess import Popen, PIPE with Popen(
a = commands.getoutput(" ls -l | awk \'{print $1, $2}\' | awk \'{if(NR>3)print}\'"
我得到以下错误:
KeyError: 'print $1, $2'
谁能帮我修理一下吗 您的Awk脚本可以简单地简化为单个脚本。这里没有任何东西真正需要使用Awk
from subprocess import Popen, PIPE
with Popen(["ls", "-l"], stdout=PIPE, universal_newlines=True) as proc:
for index, line in enumerate(proc.stdout):
if index <= 2:
continue
print(' '.join(line.split()[0:2]))
从子流程导入Popen,管道
以Popen([“ls”,“-l”],stdout=PIPE,universal\u newlines=True)作为进程:
对于索引,枚举(过程标准输出)中的行:
if索引列出完整的函数参数。您是否正在调用该行中的某个位置的.format()
?命令
模块早就不推荐使用了。所有这些在Python本身中都不难实现。是的,我正在调用.format()我必须在Python脚本中使用awk print。
。不,你没有。这里没有任何东西是用Python做不到的。正如其他人所说,您可以用Python做这个操作。在shell管道中调用awk是愚蠢的。此外,即使您是在Bash脚本中或直接在终端中执行此操作,解析ls
的输出也被认为是不好的做法,如和中所述。