Linux三剑客与管道
管道、正则、三剑客grep sed awk之间的关系
管道
|:左边命令的输出是右边命令的输入
比如:echo "hello1234"|grep 'hello'
正则
匹配字符串的工具
正则表达式就是记录文本规则的代码
小测试工具推荐:https://tool.oschina.net/regex
\b 单词\b 汉堡包 夹住只能匹配里面的单词
⚠️注意是右斜杠\
- \ba\w*\b
- \b\w{6}\b 那\w{6}呢
- \d+
- ^\d{5,12}会有一个问题,就是ss1283948pp这种就还是能匹配到,所以应该只允许匹配到只有5位数字到12位数字的qq号
三剑客grep sed awk
grep
- v 显示不被pattern匹配到的行
- c 统计匹配到的行数 (还可以用|wc -l)
- n 显示匹配到的行号(默认不显示行号)
- i 忽略字符大小写
- o 仅显示匹配到的字符串
- E 使用ERE,相当于egrep
实践:
1.查找文件包含root的行数
grep - n root test.txt
2.查找文件内容不包含root的行
grep - nv root test.txt
3.查找以h开头的行和行数
grep - n ^h test.txt
4.查找以n结尾的行
grep n$ test.txt