Linux三剑客与管道使用


1 管道

什么是管道:

linux提供管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入

示例:echo “hell0 1234”|grep ‘hello’

2 正则表达式

正则表达式就是记录文本规则的代码

举例

hi单词后面有lucy单词

hi  123wo lucy 321  :\bhi\b.*lucy\b

以0开头,然后两个数字,然后连字符“-”最后8个数字

020-66789023 0\d{2}-\d{8}

手机号码

18890012345 1[\d]{10}

电子邮件

lili@163.com \w+([- +.]\w)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

规则:

[…...] 匹配括号中任何一字符
[^…...] 匹配不在括号中的任何一字符
\w 匹配(a~z,A~Z,0~9)
\W 匹配任何一个空白字符
\s 匹配任何一个非空白字符
\S 与任何非单词字符匹配
\d 匹配任何一个数字
\D 匹配任何一个非数字
[\b] 匹配一个退格键字母
{n,m} 最少匹配前面表达式n次,最大为m次
{n,} 最少匹配前面表达式n次
{n} 正好匹配前面表达式n次
? 匹配前面表达式0或1次
+ 最少匹配前面表达式1次
* 最少匹配前面表达式0次
| 匹配前面或后面表达式
(…) 在单元中组合项目
^ 匹配字符串开头
$ 匹配字符串结尾
\b 匹配字符边界
\B 匹配非字符边界的某个位置

3 grep

定义:根据用户指定的模式(pattern)对目标文本进行过滤,显示被模式匹配到的行

命令形式:grep[选项]PATTERN[FILE…]

选项:

-v 显示不被pattern匹配到的行

-i 忽略字符大小写

-n 显示匹配的行号

-c 统计匹配的行数

-o 仅显示匹配到的字符串

-E 使用ERE,相当于egrep

例如

1、         查找文件内容包含root的行数

grep –n root test.txt

2、         查找文件内容不包含root的行

grep –nv root test.txt

3、         查找以s开头的行

grep ^s test.txt

4、         查找以n结尾的行

grep n$ test.txt

4 sed

命令形式:sed[-hn..][-e