Я хочу запустить утилиту подсчета слов Linux wc, чтобы определить количество строк в настоящее время в /var/log/syslog, поэтому я могу обнаружить, что она растет. Я пробовал различный тест, и пока я возвращаю результаты из wc, он включает как количество строк, так и команду (например, var/log/syslog).
Поэтому он возвращает: 1338/var/log/syslog Но мне нужно только подсчитать количество строк, поэтому я хочу отключить часть /var/log/syslog и просто сохранить 1338.
Я попытался преобразовать его в строку из байта, а затем лишив результат, но не радость. Такая же история для преобразования в строку и снятие, декодирование и т.д. - все не дают результат, который я ищу.
Вот некоторые примеры того, что я получаю, с 1338 строками в syslog:
- b'1338/var/log/syslog\n '
- 1338/var/log/syslog
Здесь некоторый тестовый код, который я написал, чтобы попытаться взломать этот орех, но нет решения:
import subprocess
#check_output returns byte string
stdoutdata = subprocess.check_output("wc --lines /var/log/syslog", shell=True)
print("2A stdoutdata: " + str(stdoutdata))
stdoutdata = stdoutdata.decode("utf-8")
print("2B stdoutdata: " + str(stdoutdata))
stdoutdata=stdoutdata.strip()
print("2C stdoutdata: " + str(stdoutdata))
Результатом этого является:
-
2A stdoutdata: b'1338/var/log/syslog\n '
-
2B stdoutdata: 1338/var/log/syslog
-
2C stdoutdata: 1338/var/log/syslog
-
2D stdoutdata: 1338/var/log/syslog