正则表达式
处理字符串的方法,通过一些特殊符号的辅助,让用户轻易达到查找、删除、替换某特定字符串的处理程序。
1.特殊符号:
[:alnum:] 代表英文大小写字符与数字 即 [a-zA-Z0-9]
[:alpha:] 代表任何英文大小写字符,即[a-zA-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:] 代表十六进制的数字类型,因此包括0-9,A-F,a-f
基础正则表达式字符:
^word :word in the start
word$ :word in the end
. :must have one character PS: grep -n 'e.e' regular_express.txt
\ :\' == '
* :0-n the after characters PS: grep -n 'o*' __n o | grep -n 'o**' __more than one o
[list] :[af] __ a / f
[n1-n2] : a-f __ a b c d e f
[^list] :not list
\{n,m\} :n - m after characters PS: grep -n 'go\{2,3\}g' 2 or 3 o between the g and g
Sed工具:
-n 只显示处sed处理过的行 nl /etc/passwd | sed -n '5,7p'
-i 直接修改文件数据而不显示
a:新增,a后接字符串,在新的下一行显示 nl /etc/passwd | sed '2a Drink'
c:替换 nl /etc/passwd | sed '2,5c No 2-5Number'
d:删除 如 '2,5d'删除2到5行 nl /etc/passwd | sed '2,5d'
i:新增,在下一行显示
p: 打印
s: 替换 1,20s/old/new/g