python 在linux 中执行grep 命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 在linux 中执行grep 命令相关的知识,希望对你有一定的参考价值。

使用python 在linux 执行grep 命令: ps -ef | grep "loop" | wc -l
import os,sys,subprocess
output=subprocess.call([' ps -ef | grep "loop" | wc -l'],shell=True);
print output
output 返回值为 14

但是在linux中执行 ps -ef | grep "loop" | wc -l 这条命令返回值为:13 ,

请问:为什么相同的命令在python 中执行结果会 +1 ?
如何写能获取到正确的返回值呢?

如果多个内容是与关系,可以多个grep用管道相连,是或关系,可用正则式
如grep '\(ab|cd\)' a.txt 是查包含 ab或cd的行, grep 'ab' a.txt | grep 'cd' 是查包含ab和cd的行
要将结果赋到变量 a=`grep '\(ab|cd\)' a.txt ` 就行了
在python里就相当好办了,用不着grep啦,字符串的find函数就行啦
满意请采纳。
参考技术A 下面的函数封装了系统的grep功能,传递文件名和参数返回grep的结果
import subprocess

def grep(filename, arg):
process = subprocess.Popen(['grep', '-n', arg, filename], stdout=subprocess.PIPE)
stdout, stderr = process.communicate()
return stdout, stderr
参考技术B 两个都对,可能是你执行的时间不同。

Python30-12_Linux----常用命令-文件搜索

常用命令-文件搜索

1. 文本搜索grep

    Linux系统中grep命令是一种强大的文本搜索工具, grep允许文本文件进行模式查找, 如果找到匹配模式, grep打印包含模式的所有行

    grep一般格式为: 

grep [-选项] \'搜索字符串\' 文件名

    在grep命令中输入字符串参数时, 最好引号或双引号扩起来

    列如: 

    

 

 

 常用选项

  • -v :显示不包含匹配文件的所有行(相当于求反)
  • -n : 显示匹配行及行号
  • -i : 忽略大小写

grep搜索内容串可以是正则表达式

    正则表达式是对逻辑字符串操作的一种逻辑公式, 就是用事先定义好的一些特定字符及这些特定字符的组合, 组成一个\'规则字符串\', 这个\'规则字符串\'用来表达对字符串的一种过滤逻辑

grep常用正则表达式:

  1. ^a : 行首,搜寻以a开头的行
  2. ke$ : 行尾, 搜索以ke结尾的行
  3. [] : 匹配[]里一系列字符串的一个
  4. . : 匹配一个非换行字符, 

2. 查找文件: find

  1. find ./ -name test.sh     查找当前目录下所有名为test.sh的文件
  2. find ./ -name \'*sh\'   查找当前目录下所有后缀为.sh的文件
  3. find ./ -name "[A-Z]*"    查找当前目录下所有大写字母开头的文件     (1) *表示任意字符    (2)?表示任意一个字符    (3)[列举字符]表示列举出任意一个字符
  4. find /tmp -size 2M    查找在tmp文件夹下等于2M的文件
  5. find /tmp -size +2M    查找在tmp文件夹下大于2M的文件
  6. find /tmp -size -2M    查找在tmp文件夹小等于2M的文件
  7. find /tmp -size +4k -size -5M    查找在tmp文件夹下大于4k, 小于5M的文件
  8. find ./ -perm7777    查找当前目录下权限为7777的文件和目录

 

以上是关于python 在linux 中执行grep 命令的主要内容,如果未能解决你的问题,请参考以下文章

Python30-12_Linux----常用命令-文件搜索

Linux命令Day2-七个案例学习Linux命令

Linux常用命令(十六)

Linux中的find和grep命令对查找到的文件如何处理啊

Linux grep

linux中grep和find的区别