我想运行Linux字数统计实用程序wc来确定当前在/ var/log/syslog中的行数,因此我可以检测到它正在增长.我尝试了各种测试,当我从wc获得结果时,它既包括行数也包括命令(例如,var/log/syslog).
所以它返回:1338/var/log/syslog但我只想要行数,所以我想剥离/ var/log/syslog部分,并保持1338.
我已经尝试将它从bytestring转换为字符串,然后剥离结果,但没有快乐.转换为字符串和剥离,解码等的相同故事 - 都无法产生我正在寻找的输出.
这些是我得到的一些例子,在syslog中有1338行:
这是我编写的一些测试代码,试图破解这个问题,但没有解决方案:
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))
Run Code Online (Sandbox Code Playgroud)
这个输出是:
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