管道操作可以简单理解为前一步的输出作为这一次的输入,Linux下管道操作符 |
和管道操作相关的几个命令:
1、grep
grep:能使用正则表达式搜索文本,并把匹配的行打印出来。
用法:grep[-options] '搜寻字符串'filename
选项与参数:
-c:计算找到'搜寻字符串'的次数
-i:忽略大小写的不同,所以大小写视为相同
-n:顺便输出行号
-v:反向选择,亦即显示出没有'搜寻字符串'内容的那一行!
-Ak:关键字所在行的后面k行
-Bk:关键字所在行的前面k行
-o:不显示非结果
例1、将/etc/passwd,有出现root的行取出来
grep‘root’ /etc/passwd
cat/etc/passwd | grep ‘root’
例2、将/etc/passwd,有出现root的行取出来,同时显示这些行在/etc/passwd的行号
grep-n root /etc/passwd
例3、将/etc/passwd,将没有出现root的行取出来
grep-v root /etc/passwd
例4、将/etc/passwd,将没有出现root和nologin的行取出来
grep-v root /etc/passwd | grep -v nologin
例5、用dmesg列出核心信息,再以grep找出内含eth那行,在关键字所在行的前两行与后三行也一起捉出来显示
dmesg| grep -n -A3 -B2 'eth'
例6、搜寻test或taste这两个单字 ->[]里面不论有几个字节,他都谨代表某一个字符
grep-n 't[ae]st' regular_express.txt
例7、搜索到有oo的行,但不想要oo前面有g ->字符类的反向选择[^]
grep-n '[^g]oo' regular_express.txt
例8、搜索到有oo的行,oo前面不想要有小写字节[a-z],[A-Z],[0-9]等都表示连续的字节组
grep-n '[^a-z]oo' regular_express.txt
例9、让the只在行首列出 ->^符号,在字符类符号(括号[])之内与之外是不同的!在 []内代表『反向选择』,在[]之外则代表定位在行首的意义
grep-n '^the' regular_express.txt
例