我需要打印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