2016-10-25 13 views
1

で動作するように命じる -は、私は私のPythonスクリプトでこのコマンドを持っているPythonスクリプト

client.connect(host, username=username, pkey=mykey) 
stdin, stdout, stderr = client.exec_command('sudo grep -i "key_prefix" /path/to/my/file.txt | awk -F "'" '{ print $4}'') 

しかし、私は次のエラーを取得する - SyntaxError: EOL while scanning string literal

私はPythonスクリプトを得ることができる方法文字列を正しく切り取りますか?

これは私が上のawkを行っており、文字列である -

$conf['key_prefix'] = 'my_string';。私が欲しい値は、my_stringの値です。 bashコンソールの内部では正しく動作しますが、pythonスクリプトはエラーをスローします。 awkコマンドが動作するように取得する

uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 
$conf['key_prefix'] = 'my_string'; 
$conf['key_prefix'] = 'my_string'; 

任意のアイデア -

私は、すべてのリストに、次に追加した場合は、リストのインデックス0の値は、このですか?問題の最も簡単な解決策と思われます。

ありがとうございました。

答えて

1

あなたはここでいくつかの三重引用符を使いたいと思います。

stdin, stdout, stderr = client.exec_command('sudo grep -i "key_prefix" /path/to/my/file.txt | awk -F "'" '{ print $4}'') 

stdin, stdout, stderr = client.exec_command("""sudo grep -i "key_prefix" /path/to/my/file.txt | awk -F "'" '{ print $4}'""") 

(私が見ることができるものオフに基づいて)問題は、あなたの最初の'が右-F"後に一致していることで、その後、あなたは新しい文字列を開始し、それの後"を持っているとなるべき。間違っているかもしれませんが、三重引用符を試してみてください。

+0

それはそれでした。クイックヘルプに感謝します。 –

+0

3分以上待たなければなりません。一度タイマーが切れると、私はそれを確実にするでしょう。 –

関連する問題