Linux:grep、sed、awk命令
正则表达式:匹配字符串
sed:擅长文本处理和文件内容替换
grep:擅长搜索信息
awk:擅长处理列数据和替换内容
------------------------------------------------------------------------------------------------------------------------------
正则表达式基本语法:
在线正则表达式测试网址:https://tool.oschina.net/regex/
\bture\b:查找true单词,前后用\b包住
\bHi\b.*\btom\b:查找‘Hi * tom’这个格式的字符串,*表示中间为任意字符
0\d{2}-\d{8}:查找010-12345678格式的电话号码
正则表达式字符 | 意义 |
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线或汉字 |
\s | 匹配任意的空白符 |
\b | 匹配单词的开始或结束 |
\d | 匹配数字 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
* | 重复零次或者更多次前一个字符 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
() | 分组,在后面sed命令的练习中有使用到 |
| | 匹配多个表达式中的任何一个,查找多个表达式,表达式中间用|符号隔开 |
? | 非贪婪匹配 |
练习:
匹配以字符a开头的单词:\ba\w*\b
匹配刚好6个字符的单词:\b\w{6}\b
匹配1个或者更多连续的数字:\d+
匹配5到12位数字:\d{5,12} or ^\d{5,12}$(只匹配数字,防止q11111也能被匹配到)
grep命令:
根据用户指定的规则,对目标文本进行过滤,显示被规则匹配到的行信息,这个规则是支持正则表达式的,因此grep中可以使用正则表达式
命令形式:grep [options] pattern [