认识bash shell5--管道命令(pipe)之撷取命令cut,grep
5.管道命令(pipe)管道命令|仅能处理经由前面一个指令传来的正确信息,也就是standard output的信息,对于standard error output并没有直接处理的能力。在每个管道后面接的第一个数据必定是指令,而且这个指令必须要能够接受standard output的数据才行,这样的指令才可以说是管道命令,如less, more, head, tail等都是可以接受standard output的管道命令,而ls, cp, mv等就不是管道命令了,因为ls, cp, mv并不会接受来自stdin的数据。
撷取命令cut,grep:撷取命令就是将一段数据经过分析后,取出我们想要的。或者是经由分析关键词,取得我们所想要的那一行。两个很常用的讯息撷取命令:
① cut:可以将一段讯息的某一段给切出来,处理的讯息是以行为单位的
cut -d ‘分隔字符’ -f fields
cut -c 字符区间
-d:后面接分隔字符,与-f一起使用
-f:依据-d的分隔字符将一段讯息分隔成为数段,用-f取出第几段
-c:以字符(characters)的单位取出固定字符区间
例如:读取变量PATH,找出第三和第五个路径:echo $PATH | cut -d ‘:’ -f 3,5
将export输出的讯息,取得第12字符以后的所有字符串:export | cut -c 12-
用last将显示的登入者的信息中,仅留下用户大名:last | cut -d ‘ ’-f 1
② grep:cut是将一行讯息当中,取出某部分我们想要的,而grep则是分析一行讯息,若其中有我们想要的信息,就将该行拿出来。
grep [-acinv] [--clor=auto] ‘搜寻字符串’ filename
-a :将 binary 档案以 text 档案的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
--color=auto :可以将找到的关键词部分加上颜色的显示
例如:将last当中,有出现root的那一行就取出来;last | grep ‘root’
将last当中,没有root的取出:last |grep -v ‘root’
将last当中,只要有root就取出,并且仅取第一栏:
last | grep ‘root’ |cut -d ‘ ’-f 1
取出/etc/man.config内含MANPATH的那几行:
grep --colot=auto ‘MANPATH’/etc/man.config
页:
[1]