特殊符号 | 代表意义 |
---|---|
[:alnum:] | 代表英文大小写字符及数字,亦卲 0-9, A-Z, a-z |
[:alpha:] | 代表任何英文大小写字符,亦卲 A-Z, a-z |
[:blank:] | 代表空格键与 [Tab] 按键两者 |
[:cntrl:] | 代表键盘上面的控制按键,亦卲包括 CR, LF, Tab, Del.. 等等 |
[:digit:] | 代表数字而已,亦卲 0-9 |
[:graph:] | 除了空格符 (空格键不 [Tab] 按键) 外的其他所有按键 |
[:lower:] | 代表小写字符,亦即 a-z |
[:print:] | 代表任何可以被打印出来的字符 |
[:punct:] | 代表标点符号 (punctuation symbol),亦卲:" ' ? ! ; : # $... |
[:upper:] | 代表大写字符,亦即 A-Z |
[:space:] | 任何会产生空白的字符,包括空格键, [Tab], CR 等等 |
[:xdigit:] | 代表 16 进位的数字类型,因此包括: 0-9, A-F, a-f 的数字不字符 |
1、基础正则表示法的练习
1.1 搜寻特殊字符
grep -n 'the' regular_express.txt
grep -vn 'the' regular_express.txt #反向选择
grep -in 'the' regular_express.txt #不区分大小写
grep -n 't[ae]st' regular_express.txt # []里面无论有几个字符,都仅代表一个字符
grep -n '[0-9]' regular_express.txt # 一组集合字符
grep -n '[a-z]' regular_express.txt # 一组集合字符
grep -n '^the' regular_express.txt # 一行字符以the开头
grep -n '.$' regular_express.txt # 一行字符以.结尾
. 小数点:代表一定有一个任意字符的意思,
* 星号:代表重复前一个0到无穷多次的意思,为组合形态;
grep -n 'ooo' egular_express.txt # 一行中包含2个或者以上的o;
grep -n 'g.g' egular_express.txt # 一行中包含g*g的内容;
grep -n 'o{2}' egular_express.txt # 包含2个o的内容行;限定连续字符
grep -n 'o{2,5}' egular_express.txt # 包含2个到5个o的内容行;限定连续字符
RE字符 | 意义与范例 |
---|---|
^word | 待搜寻的字符在行首,例:grep -n '^#' egular_express.txt |
word$ | 待搜寻的字符在行尾,例:grep -n '!$' egular_express.txt |
. | 代表一定有一个任意字符的字符,例:grep -n ’e.e' egular_express.txt |
\ | 跳脱字符,将特符号的特殊意义去除,例:grep -n ' egular_express.txt |
* | 重复0到无穷多个的前一个RE字符,例:grep -n ’ess*' egular_express.txt |
[list] | 字符集合RE字符,里面列出想要截取的字符,例:grep -n 'g[ld]' egular_express.txt |
[n1-n2] | 字符集合的RE字符,里面列出想要截取的字符范围,例:grep -n ‘[0-9]' egular_express.txt |
[^list] | 字符集合的RE字符,里面列出不要的字符串或者范围,例:grep -n 'oo[^t]' egular_express.txt |
{n,m} | 连续n到m个前一个RE字符,例:grep -n 'go{2,3}g' egular_express.txt |
2、sed工具
sed本身也是一个管线命令,可以分析standard input,还可以将数据进行取代、删除,截取特定行等功能
nl /etc/passwd | sed '2,5d' # 将 /etc/passwd 的内容列出幵且打印行号,同时,请将第 2~5 行删 除!
nl /etc/passwd | sed '2a drink tea' #在第二行后(亦卲是加在第三行)加上『drink tea?』字样!
nl /etc/passwd | sed '2,5c No 2-5 number' # 将第 2-5 行癿内容叏代成为『No 2-5 number』
nl /etc/passwd | sed -n '5,7p' # 仅列出 /etc/passwd 档案内癿第 5-7 行
3、文件的格式化与相关处理
3.1 格式化打印:printf
3.2 处理处理工具:awk
3.3 档案对比工具:diff,cmp
网友评论