文本查找的需要:
grep,egrep,fgrep
grep:根据模式搜索文本,并将符合模式的文本行显示出来
Pattern:文本字符和正则表达式的元字符所组合而成匹配条件
grep:
# 表达式
SYNOPSIS
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN]... [-f FILE]... [FILE...]
- grep的一些用法:
$ grep 'root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
$ man grep
$ # -i:不区分大小写
$ # --color 显示颜色
$ grep --color 'root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
$ #-v:反向匹配,显示没有被模式匹配的行
$ grep -v 'root' /etc/passwd
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
...
$ # -o:只显示被模式匹配的本身
$ grep -o 'root' /etc/passwd
root
root
root
正则表达式:
Regular EXPression,REGEXP (下次课程学习)
复习Linux Day6
*:任意长度的任意字符
?:任意单个字符
[ ] :指定范围内
[ ^ ]:指定范围外的
元字符:
. :匹配任意单个字符
[ ]: 匹配指定范围内的单个字符
[ ^ ]:匹配指定范围外的单个字符
字符集合:[ :digit:] 数字, [ :lower:] 小写,[ :upper :]大写,[ :punct:]标点符号,[:space:]空格,[:alpha:]所有字母,[:alnum:]所有字符字母
\<或\b放在后面 :锚定词首, 其后面的任意字符必须作为单词首部出现
\>或\b (放在前面): 锚定词尾,其前面的任意字符必须作为单词的尾部出现
分组:\ ( \ )
\ (ab)* 后向引用(ab)的意思
$ # .匹配单个任意字符
$ grep 'r..t' /etc/passwd
root:x:0:0:root:/root:/bin/bash
$ # 字符个数:* 匹配其前面的字符任意次(区别任意长度)
$ # 创建一个文件text.txt
$ nano text.txt
$ cat text.txt
a
b
ab
adb
amnb
amnmnb
amnmbmnb
$ # a.*b:任意长度的任意字符(以a开头,以b结束,中间什么都可以)
$ grep 'a.*b' text.txt
ab
adb
amnb
amnmnb
amnmbmnb
$ # a*b的意义:
$ grep 'a*b' text.txt
b
ab
adb
amnb
amnmnb
amnmbmnb
$ #匹配出了amnmbmnb:正则表达式的贪婪模式:尽可能的匹配
$ # ?:做次数匹配,匹配其前面的字符1次/0次
$ grep 'a?b' text.txt
$ grep 'a\?b' text.txt
b
ab
adb
amnb
amnmnb
amnmbmnb
$ # ?需要.'\'做转义,grep做部分匹配
$ # {m,n\}在bashell中就是展开的意思,其前面加上\{}表示不展开的意思
$ # \{m,n\}:匹配其前面的字符至少m次,至多n次
$ grep 'a\{1,3\}b' text.txt
ab
$ grep 'a.\{1,3\}b' text.txt
adb
amnb
amnmbmnb
$ #grep 'a.\{1,3\}b' text.txt表示a,b之间至少包含1个字符最多出现三个字符,所以注意理解amn
mbmnb,以及区别grep 'a\{1,3\}b' text.txt
位置锚定:
^: 锚定行首,此字符后面的字符必须出现在行首
$ :锚定行尾。
`^$` : 表示空白行
$ grep 'b..h$' /etc/passwd
root:x:0:0:root:/root:/bin/bash
ubuntu:x:500:500:ubuntu,,,:/home/ubuntu:/bin/bash
...
# 查看空白行
$ grep '^$' /etc/passwd | wc -l
0
友情阅读推荐:
生信技能树公益视频合辑:学习顺序是linux,r,软件安装,geo,小技巧,ngs组学!
请猛戳下面链接:
B站链接:https://m.bilibili.com/space/338686099
YouTube链接:https://m.youtube.com/channel/UC67sImqK7V8tSWHMG8azIVA/playlists
生信工程师入门最佳指南:https://mp.weixin.qq.com/s/vaX4ttaLIa19MefD86WfUA
网友评论