快乐的Linux命令行笔记-正则表达式
第一天的笔记-基本的命令和使用方法
第二天的笔记-操作文件
第三天的笔记-查阅命令文档并创建命令别名
第四天的笔记-重定向标准输入和输出以及处理查询结果
第五天的笔记-命令的展开
第六天的笔记-快捷键
第七天的笔记-文件权限
第八天的笔记-进程
第九天的笔记-修改shell环境
第十天的笔记-vim入门
第十一天的笔记-自定义shell提示符
第十二天的笔记-软件包管理系统
第十三天的笔记-创建映像
第十四天的笔记-网络
第十五天的笔记-查找文件
第十六天的笔记-压缩
总结
本次主要学习了如何在各种命令中使用正则表达式来匹配, 其他的命令如find, 可以使用 -regex, locate 可以使用 –regex
grep中使用正则
grep选项
选项 | 描述 |
---|---|
-i | 忽略大小写, 不会区分大小写字符, 也可用 –ignore-case 指定 |
-v | 不匹配, 通常 grep 程序会打印包含匹配项的文本行。这个选项导致 grep 只打印不包含匹配项的文本行, 也可用 –invert-match 指定 |
-c | 打印匹配数量(或是不匹配数目, 若指定了-v选项), 而不是文本行本身, 也可用 –count 选项来指定 |
-l | 打印包含匹配项的文件名, 而不是文本行本身, 也可用 –files-with-matched 选项来指定 |
-L | 和-l相反, z打印不匹配的文件名, 也可用 –files-without-match 来指定 |
-n | 在每个匹配行之前打印出其位于文件中的相应行号。也可用 –line-number 选项指定 |
-h | 应用于多文件搜索, 不输出文件名, 也可用 –no-filename 选项指定 |
使用grep检索文本文档中的内容:
1 |
|
POSIX 字符集
字符集 | 说明 |
---|---|
[:alnum:] | 字母数字字符。在ASCII中, 等价于: [a-zA-Z0-9] |
[:word:] | 与 [:alnum:] 相同, 但是增加了下划线字符 |
[:alpha:] | 字母字符, 在ASCII中等价于 [a-zA-Z] |
[:blank:] | 包含空格和tab字符 |
[:cntrl:] | ASCII的控制码, 包含了 0-31, 和 127 的ASCII字符 |
[:digit:] | 数字0-9 |
[:graph:] | 可视字符, 在 ASCII 中包含33到126的字符 |
[:lower:] | 小写字母 |
[:punct:] | 标点符号字符, 在ASCII中等价于 [-!”#$%&’()*+,./:;<=>?@[ ]_`{ |
[:print:] | 可打印字符, 包含 [:graph:] 中的所有字符, 再加上空格字符 |
[:space:] | 空白字符, 包括空格, tab, 回车, 换行, vertical tab 和 form feed, 在 ASCII 中, 等价于: [\t\r\n\v\f] |
[:upper:] | 大写字母 |
[:xdigit:] | 用来表时十六进制数字的字符, 在ASCII中, 等价于: [0-9A-Fa-f] |
使用 locale
命令查看所有排序规则, 并通过 export LANG=POSIX
命令来更改当前的系统排序规则。
POSIX基本正则表达式与POSIX扩展正则表达式
基本正则表达式(BRE) 扩展正则表达式(ERE)
BRE可以辨别以下元字符:
1 |
|
ERE 比 BRE 多了以下元字符:
1 |
|
然而在 BRE 中, 字符 (
)
{
}
用反斜杠转义后, 被看作是元字符, 相反在ERE中, 任意元字符之前加上反斜杠都会被看作是文本字符。
快乐的Linux命令行笔记-正则表达式
http://icecreamzhao.github.io/note/read_note/The_Linux_Command_Line/The-Linux-Command-Line-read-note-17Day.html