如何在Django上使用paramiko处理awk逗号?

时间:2018-10-04 13:51:00

标签: django bash paramiko

stdout = session.exec_command('''find {} -name "{}*" -type f -exec stat -c "%n %y" {}<--**This is bash, not variable of format** + | awk "{ print $1" "$2 }" | grep -v word'''
.format(VARIABLE1, VARIABLE2))

我正在Django 1.9.13上使用paramiko 2.4编写此代码,不知道如何处理,错误是:

  

/ get_xml / index /中的KeyError'打印$ 1“” $ 2'

已更新

它现在不会崩溃,但是不会返回任何东西,但是如果我使用bash进行操作,它就可以正常工作,以为那里缺少某些东西...

command = find {} -name '{}*.xml' -type f -exec stat -c '%n %y' {{}} + | awk '{{print $1, $2, $3}}' | grep -v 'word'

stdout = session.exec_command(command)

答案

ssh.connect(hostname=VARIABLE1, username=VARIABLE2)
command = "find {} -name '{}*.xml' -type f -exec stat -c '%n %y' {{}} + | awk '{{print $1, $2, $3}}' | grep -v WHATIDONTWANTTO".format(VARIABLE3, WHATIWANTTOSEARCH)
_, stdout, _ = ssh.exec_command(command)
for item in stdout:
     #do whatever with items
     pass

终于可以了,最后一种方法是session = ssh.get_transport()。open_session(),但是它总是检索'Nonetype'

1 个答案:

答案 0 :(得分:2)

根据documentation on .format,如果您需要在文字文本中包含大括号字符,可以通过将{{和}}加倍来进行转义。

因此,如果我正确理解了您的评论,则此if(loginStatus == true){ bottomNavigationView.menu.menu.findItem(R.id.authorizationFragment).isVisible = true bottomNavigationView.menu.findItem(R.id.meFragment).isVisible = false }else{ bottomNavigationView.menu.menu.findItem(R.id.authorizationFragment).isVisible = false bottomNavigationView.menu.findItem(R.id.meFragment).isVisible = true } 应该为-exec stat -c "%n %y" {},依此类推。