shell编程之正则表达式
一、正则表达式
1.什么是正则表达式
正则表达式用于描述字符排列和匹配模式的一种语法规则。主要用于字符串的模式分割、匹配、查找及替换操作。主要用于匹配。
2.正则表达式与通配符
正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed命令可以支持正则表达式。
通配符用来匹配符合条件的文件名,通配符是完全匹配,ls、find、cp这些命令不支持正则表达式,所以只能用shell自己的通配符来进行匹配了。
通配符 通配符例子3.基础正则表达式1
基础正则表达式 “*”匹配4.基础正则表达式2
“.”匹配
例子
"^"号和”$号
“[]”号
"[^]"号代表取反
5.基础正则表达式3
"\”转义符 “\{n\}”符 “\{n,\}”符 “\{n,m\}”符6.正则表达式案例
匹配日期和ip清空linux中文本的内容:esc退出后,按小写d、再按大写G,会从光标的所在行清空到整个行尾。
二、字符截取命令
1.cut命令
cut命令 例子 例子2.printf命令
输出类型 输出格式 例子 格式 例子 print和printf命令3.awk命令
格式 例子4.sed命令
sed是一种几乎包括所有unix平台(包括linux)的轻量级编辑器。sed主要用来将数据进行选取/替换/删除/新增的命令。
sed命令格式 sed支持的动作字符串替换例子:
sed ‘2p’ test.txt #查看文件的第二行
sed -n ‘2p’ test.txt #只打印出第二行
sed '2,4d' test.txt #删除第二行到第四行的数据,但是不修改文件本身
sed '2a piaolaing jiushi renxing' test.txt #在第二行后追加内容
sed ‘2i meinv‘ test.txt # 在第二行前插入两行数据
sed '2c hello' student.txt #第四行数据替换被替换成hello
注意:如果不加“-i”,那么原文档的原始数据不会被修改。
三、字符处理命令
1.字符处理命令
sort命令:
排序命令例子:
sort /etc/passwd #排序用户信息文件(按字母顺序排列)
sort -t /etc/passwd #反向排序
sort -t ":" 3,3 /etc/passwd #指定分割符是“:”,用第三字段开头,第三字段结尾排序,就是只用第三字段排序
sort -n -t ":" -k 3,3 /etc/passwd #把指定的字符串,按照数值来排序,符合用户习惯
wc命令
统计命令