IPython下字符串的简单处理 - 千月的python linux 系统管理指南学习笔记(8)

时间:2020-12-18 21:53:43
这里仅仅对字符串进行简单处理,实现 shell 一样的功能。 复杂的处理方法,会在后面章节细说。

如果需要在 shell 下得到 Debian-+ 这个特殊用户拥有进程的 PID 方法如下。

IPython下字符串的简单处理 - 千月的python linux 系统管理指南学习笔记(8)

我们使用了系统命令 ps -ef 结合了 awk 的方法得到。 有的朋友可能刚接触awk,简单解释下这句话的用法 '{ if ($1=="Debin-+") print $2 }' 从上往下单行读入。 如果该行第一列(默认制表符或者空格分割) 为Debin-+ 时,输出该行第2列的值 (print $2)。 第一列是用户名,第2列是 PID 对照这看下很简单的。 IPython下字符串的简单处理 - 千月的python linux 系统管理指南学习笔记(8)


我们回到 IPython 环境。之后开始真正的使用 python的一些代码了。我会用 特殊颜色标识 先看一个例子 列表对象.grep('关键字') #查找关键字,按行输出 IPython下字符串的简单处理 - 千月的python linux 系统管理指南学习笔记(8)

因为ps aux 输出是一个类似列表的结构,在 python 内建结构时归为列表类。 grep() 可以查找关键字。按行输出,有点像 bash 下的 grep 命令 列表对象.grep('关键字',prune=True ) #查找关键字,按行输出匹配的行 参数 prune=True #将匹配的任何记录都删掉。 IPython下字符串的简单处理 - 千月的python linux 系统管理指南学习笔记(8)

我们希望输出所有 开始时间不是 17:45 的进程 (start 列不是 17:45) 因为我们时 17:45 开机的所以大部分系统进程都是 17:45
下面开始再次对列进行过滤 列表对象.fields( 列 , [列] ) #对列进行过滤,数字写第几列就可以。0起始。 IPython下字符串的简单处理 - 千月的python linux 系统管理指南学习笔记(8)

因为 grep() 输出的结果也是列表对象,因此可以联合使用,这非常常见。
我们再进一步,我们仅需要PID,但是又不希望一个ID占一行。 对象.s #以标准字符格式输出。 IPython下字符串的简单处理 - 千月的python linux 系统管理指南学习笔记(8)


再看一看对目录的判定处理。同样使用 grep() 来过滤 os.path.isdir #判定是否是目录 os.path.isfile #判定是否是文件 IPython下字符串的简单处理 - 千月的python linux 系统管理指南学习笔记(8)

不多解释了。大家应该都已经看明白了