>[success] # 在文件当中匹配符合条件的字符串 1. `grep`命令 在文件当中**搜索符合条件的字符串**,**会对文件的每一行按照给定的模式(pattern)进行匹配查找(可以使用正则)** 2. `grep [-n] 关键字 文件路径` * 选项`-n`,可选,表示在结果中显示匹配的行的行号 * 参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用""将关键字包围起来 * 参数,文件路径,必填,表示要过滤内容的文件路径,**可作为内容输入端口**(查看管道章节) >[danger] ##### 参数 1. `-i` 忽略大小写 2. `-v` 排除指定字符串 3. `-c` 只输出匹配行的计数(统计个数)。 4. `-n` 显示匹配行及行号。 5. `-w` 显示整个单词(模糊搜索时候) 6. `-r` 递归查询 >[danger] ##### 使用 1. `grep "b" a.txt` -- 找到a.txt 中b 类似在浏览器使用ctrl+f 2. `grep -v "b" a.txt` 3. `grep "-i" f a.txt` | 元字符 | 作用 | 示例 | | --- | --- | --- | | \* | 前一个字符匹配 0 次或任意多次 | grep 1\* reg.txt | | . | 匹配除换行符外的任意一个字符 | grep . reg.txt | | ^ | 匹配行首。例如,^hello 会匹配以 hello 开头的行 | grep ^a reg.txt | | $ | 匹配行尾。例如,hello& 会匹配以 hello 结尾的行 | grep a$ reg.txt | | \[\] | 匹配屮柄号屮指定的任意一个字符,而且只匹配一个字符。 例如.\[aoeiu\]匹配任意一个元音字母, \[0-9\] 匹配任意一位数字, \[a-z\]\[0-9\] 匹配由小写字母和一位数字构成的两位字符 | grep ab\[bc\]c reg.txt | | \[^\] | 匹配除中括号中的字符以外的任意一个字符。例如,\[^0-9\] 匹配任意一位非数字字符, \[^a-z\] 匹配任意一位非小写字母 | grep a\[^fg\]c reg.txt | | \\ | 转义符,用于取消特殊符号的含义 | grep \\.$ reg.txt | | {n} | 表示其前面的字符恰好出现 n 次。例如,\[0-9\]{4} 匹配4位数字,\[1\]\[3-8\]\[0-9\]{9} 匹配手机号码 | grep "a{1}" reg.txt | | (n,} | 表示其前面的字符出现不少于 n 次。例如,\[0-9\]{2,} 匹配两位及以上的数字 | grep "a{1,}" reg.txt | | {n,m} | 表示其前面的字符至少出现 n 次,最多出现 m 次。例如,\[a-z\]{6,8} 匹配 6〜8 位的小写字母 | grep "a{2,3}" reg.txt |