У меня есть задача ткани следующим образом:Побег AWK специальный символ в Python
@task
def getCrons():
timeStampNowServer = sudo("date +%s%3N", pty=False)
cronLogFiles = sudo(
"find /home/logs/cron/ -maxdepth 2 -type f -mtime -1 -name '*.log'", pty=False)
cronLogFiles = cronLogFiles.splitlines(True)
for cronLog in cronLogFiles:
info = sudo(
"awk '/END$/ {prev=$0; next}; /^#RETURN/ && $2>0 {cur=$0; pr=1; next}; pr {printf \" % s\n % s\n % s\n\", prev, cur, $0; pr=0}'{0}".format(cronLog), pty=False)
print(info)
Я имею следующий отслеживающий:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/fabric/main.py", line 743, in main
*args, **kwargs
File "/usr/lib/python2.7/site-packages/fabric/tasks.py", line 379, in execute
multiprocessing
File "/usr/lib/python2.7/site-packages/fabric/tasks.py", line 274, in _execute
return task.run(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/fabric/tasks.py", line 174, in run
return self.wrapped(*args, **kwargs)
File "/home/lbn/k.sewnundun/fabfile/kse/test.py", line 18, in getCrons
"awk '/END$/ {prev=$0; next}; /^#RETURN/ && $2>0 {cur=$0; pr=1; next}; pr {printf \"%s\n%s\n%s\n\", prev, cur, $0; pr=0}'{0}".format(cronLog), pty=False)
KeyError: 'prev=$0; next'
Команда, которую я хочу выполнить на сервере:
awk '/END$/ {prev=$0; next}; /^#RETURN/ && $2>0 {cur=$0; pr=1; next}; pr {printf "%s\n%s\n%s\n", prev, cur, $0; pr=0}' mylog.LOG
Однако я не могу избежать символов в строке:
info = sudo(
"awk '/END$/ {prev=$0; next}; /^#RETURN/ && $2>0 {cur=$0; pr=1; next}; pr {printf \" % s\n % s\n % s\n\", prev, cur, $0; pr=0}'{0}".format(cronLog), pty=False)
Как это сделать правильно?