正则表达式
2018-02-25 14:52
274 查看
正则表达式
是一串有规律的字符串grep
grep ‘ abc123’ filename `- c : 行数,可以用来计数,文本里出现多少次要找的字符串 `- i : 不区分大小写 `- n : 显示行号 `- v: 取反 `- r : 遍历子目录以下的文件,遍历目录用 -r `- A : 后面跟数字,过滤出符合要求的行以及下面的n行 `- B: 同上,过滤出符合要求的行以及上面的n行 `- C : 同上,同时过滤出符合要求的行以及上下各n行
元字符
`*` 前一个字符匹配 0 次或 任意 多次(星 号前一个字符不起作用) `.` 匹配除了换行符外 点号前面的任意 一个 字符 `+` 表示1次到多次,\+也要脱义,否则用egrep ? ?号前面的字符匹配1或者0次,\?也要脱义,否则用egrep $ 匹配行首,列如 ^hello 会匹配以 hello 开头的行 | 表示匹配多个字符 'root|nologin|aaa' [ ] 匹配中括号指定的任意一个字符,只匹配一个字符 例如:[0-9]匹配任意一个数字,[a-z][0-9]匹配小写字母和一位数字构成的两位字符 [^] 匹配除了中括号的字符以外的任意一个字符 例如:[^0-9] 匹配任意一位非数字字符。 [^a-z] 表示任意一位非小写字符。 \ 转移符,用于取消将特殊符号的含义取消 \{n\} 表示其前面的字符恰好出现n次 例如:[0-9]\{4\} 匹配4位数字 [1][3-8][0-9]\{9\} 匹配手机号码 \{n,\} 表示其前面的字符出现 不小于n 次 例如:[0-9]\{2,\} 表示两位以及以上的数字 \{n,m\} 表示其前面的字符出现 至少n 次,最多出现 m 次。 例如:[a-z]\{6,8\} 匹配6到8位的小写字母 egrep = grep -E 可以免去脱义符 egrep '{}' = grep '\{\}' = grep -E '{}'
sed 文本替换
轻量级流编辑器,主要用来将数据进行选取,替换,删除,新增 `- r : 支持脱义 `- n : 一般会把所有的数据输出到屏幕上,如果加入n选项,只会输出已匹配的行,一般加入p 选项print `- e : 加多命令编辑 `- i : 修改,修改已读数据文件,直接更改文件内容,sed -i '1,5'd 1.txt 动作,加在 '字符串'后面的 `- I : 不区分大小写 `- d : 删除指定行数 sed '1,10'd 1.txt 1-10行delete `- a :追加,在当前行后添加一行或者多行 `- c : 行替换,用c 后面的字符串替换原数据 `- i : 插入,在当前行前插入一行或者多行。d : 删除,g : 全局 `- p : 打印,输出指定的行 `- s : 字串替换,用一个字符串替换另一个字符串 '行范围s/旧字符串/新字符串/g' g : 表示全局,不加就表示一行
awk
awk 工具 分段匹配 `- F 指定分割符 $1 表示 第一段, $0 表示所有 awk '{print $0}' 1.txt awk '{print $1,$3,$7}' 1.txt 默认分隔符为空格,或者空白字符 `~` 匹配 后面的字符 也支持正则 支持多个表达式一起写 awk -F ':' '/root|user '{print $0}' 1.txt 数学运算 $3 > 100 大于100 $3 == 100 等于100 $3 < 100 小于100 $3 >= 100 大于等于100 $3 != 100 不等于 $3 > "5" && $3 < "7" 大于5小于7 &&与,||或 {OFS="#"} 内置变量,指定print打印用到的分割符# {NR} 行 'NR<=10' 前10行 {NF} 段 'NF==6' 第6段 {BEGIN} {END}
相关文章推荐
- 正则表达式快速入门
- [正则]正则表达式 捕获型括号和非捕获型括号
- iOS正则表达式
- [转]BOOST 正则表达式 在Visual Studio 2005 下(VC8)的安装
- 正则表达式概述 什么是正则表达式 .
- 正则表达式及grep、sed、awk、cut、sort、uniq工具
- C# 中的常用正则表达式总结
- [javase]Java中正则表达式使用方法详解
- 正则表达式
- Java学习笔记-字符串、正则表达式(String,regex)
- java核心技术正则表达式
- java正则表达式
- 使用正则表达式匹配tsql注释语句
- JavaScript正则表达式下——相关方法
- 正则表达式--还有些什么东西没提到
- 常用的最完全的正则表达式
- 比较钟意的正则表达式的讲解
- oracle查询字符根据正则表达式替换字符函数
- 正则表达式为什么需要两个 \\