Linux三剑客与管道使用(grep、sed、awk)

  • 管道
  • 正则表达式
  • grep
  • sed
  • awk

管道,什么是管道?

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

# 示例:
echo "hello world"|grep 'hello'

正则,什么是正则?

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

常用的元字符

代码 说明
. 匹配出换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符的开始
$ 匹配字符的结束

常用的限定符

代码/语法 说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
练习题:
1、匹配以字母a开头的单词;
2、匹配刚好6个字符的单词;
3、匹配1个或多个连续的数字;
4、匹配5到12位的QQ号;
  1. \ba\w*\b
  2. \b\w{6}\b
  3. \d+
  4. ^\d[1-9]{5,12}$

grep

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

命令形式:  
grep [OPTIONS] PATTERN[FILE]
  • -v 显示不被pattern匹配到的行
  • -i 忽略字符的大小写
  • -n 显示匹配的行号
  • -c 统计匹配的行数
  • -o 仅显示匹配到的字符串
  • -E 使用ERE,相当于egrep

实例展示

1、查找文件内容包含 False 的行数
grep -n 'False' log.log

2、查找文件内容不包含 False 的行
grep -nv 'False' log.log

3、查找以 t 开头的行
grep -n ^t grep_demo.txt

4、查找以 s 结尾的行
grep -n s$ grep_demo.txt
[root@VM_0_10_centos test_linux]# cat grep_demo.txt
root
admin
test
devops
root
admin
test01
java
log
java
web001
logs
data
ROOT
LOGS
TEST001
TEST002
[root@VM_0_10_centos test_linux]# grep -n s$ grep_demo.txt
4:devops
12:logs
[root@VM_0_10_centos test_linux]# grep -n -i ^t  grep_demo.txt
3:test
7:test01
16:TEST001
17:TEST002
[root@VM_0_10_centos test_linux]# grep -c -i ^t  grep_demo.txt
4

sed

sed 是流编辑器,一次处理一行内容

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

你可能感兴趣的:(Linux,Linux,awk,sed,管道符,grep)