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