Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python脚本中使用awk_Python_Linux_Python 2.7_Awk - Fatal编程技术网

在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(

我必须在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(["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
的输出也被认为是不好的做法,如和中所述。