Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.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
我需要打印LM散列的第三列。但Python在FS之后使用冒号时显示错误 #/usr/bin/python 导入子流程 导入系统 def main(): h=sys.argv[1] 打印(“这是一个LM散列。”) cmd1='awk'BEGIN{FS=“:”}{print$3}'_Python_Awk_Hash_Subprocess - Fatal编程技术网

我需要打印LM散列的第三列。但Python在FS之后使用冒号时显示错误 #/usr/bin/python 导入子流程 导入系统 def main(): h=sys.argv[1] 打印(“这是一个LM散列。”) cmd1='awk'BEGIN{FS=“:”}{print$3}'

我需要打印LM散列的第三列。但Python在FS之后使用冒号时显示错误 #/usr/bin/python 导入子流程 导入系统 def main(): h=sys.argv[1] 打印(“这是一个LM散列。”) cmd1='awk'BEGIN{FS=“:”}{print$3}',python,awk,hash,subprocess,Python,Awk,Hash,Subprocess,您可以使用split来实现: #!/usr/bin/python import subprocess import sys def main(): h = sys.argv[1] print ("This is an LM Hash.") cmd1 = 'awk 'BEGIN{FS =":"} {print $3}' <<< "+h" > lmhash.txt' data1 = subprocess.check_output(cmd1, s

您可以使用
split
来实现:

#!/usr/bin/python
import subprocess
import sys
def main():
    h = sys.argv[1]
    print ("This is an LM Hash.")
    cmd1 = 'awk 'BEGIN{FS =":"} {print $3}' <<< "+h" > lmhash.txt'
    data1 = subprocess.check_output(cmd1, shell=True)
if __name__ == '__main__':
    main()
输出:

import sys

def main():
    h = sys.argv[1]
    if len(h.split(':')) == 7 : 
        print("This is an LM Hash.")
        print(h.split(':')[2])

if __name__ == '__main__':
    main()

检查Python的“re”模块。在子流程下的Python内部使用awk会增加不必要的复杂性。
This is an LM Hash.  
EA0A545D9969EE58AAD3B435B51404EE