我想运行 Linux 字数统计实用程序 wc 来确定 /var/log/syslog 中当前的行数,以便我可以检测到它正在增长。我尝试了各种测试,当我从 wc 得到结果时,它包括行数和命令(例如,var/log/syslog)。
所以它返回:1338 /var/log/syslog 但我只想要行数,所以我想去掉 /var/log/syslog 部分,只保留 1338。
我尝试将它从字节串转换为字符串,然后剥离结果,但没有任何乐趣。转换为字符串和剥离、解码等的相同故事 - 都无法产生我正在寻找的输出。
这些是我得到的一些示例,系统日志中有 1338 行:
- b'1338 /var/log/syslog\n'
- 第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))
输出是:
2A 标准输出数据:b'1338 /var/log/syslog\n'
2B 标准输出数据:1338 /var/log/syslog
2C 标准输出数据:1338 /var/log/syslog
2D 标准输出数据:1338 /var/log/syslog