我在 shell 中使用了 grep 命令,它给出了我想要的结果,但是当我使用 os.popen 从 python 脚本运行时,它说
grep: SUMMARY:: No such file or directory
普通 grep 命令:
grep -A 12 -i "LOGBOOK SUMMARY:" my_folder/logbook.log
Python 脚本
command="grep -A 12 -i LOGBOOK SUMMARY: my_folder/logbook.log"
result=os.popen(command)
正常的 grep 命令给出了我想要的结果。 第二个说没有这样的文件或目录
最佳答案
您需要将搜索模式括在引号内:
command="grep -A 12 -i 'LOGBOOK SUMMARY:' my_folder/logbook.log"
如何诊断此类问题?从错误消息开始:
grep: SUMMARY:: No such file or directory
此错误消息表明 grep
找不到名为 SUMMARY:
的文件。
正确的问题是,为什么grep
要查找名为SUMMARY:
的文件?
答案是在你执行的命令行上,
不知何故 SUMMARY:
被视为文件名:
command="grep -A 12 -i LOGBOOK SUMMARY: my_folder/logbook.log"
当然!如果您在 shell 中执行该命令,将会发生以下情况:
grep -A 12 -i LOGBOOK SUMMARY: my_folder/logbook.log
这里,shell 将以空格分割命令行,
并传递给 grep
3 个参数,LOGBOOK
、SUMMARY:
和 my_folder/logbook.log
。
第一个参数 LOGBOOK
用作搜索模式,
所有剩余的参数都将作为要搜索的文件名。
关于python - 来自 python 的 grep 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45092671/