shell 编程之正则表达式

shell 编程之正则表达式

正则表达式:又称规则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。

正则表达式之通配符

*任意字符,?任意一个字符,[]匹配字符
正则式包含匹配,是文件中的内容匹配,通配符是文件匹配,是完全匹配
 

基础正则表达式:

* 前一个字符匹配0次或任意多次

.   匹配除了换行符外任意一个字符
^   匹配行首   例如 ^hello 会匹配以hello开头的行
$   匹配行尾   例如  hello$ 会匹配以hello结尾的行
[]  匹配中括号中指定的任意一个字符,只匹配一个字符。[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位的小写字母
 
*   前一个字符匹配0次或任意多次

.   匹配除了换行符外任意一个字符

^   匹配行首   例如 ^hello 会匹配以hello开头的行
$   匹配行尾   例如  hello$ 会匹配以hello结尾的行

[]  匹配中括号中指定的任意一个字符,只匹配一个字符。[0-9]匹配任意一位数字
[^] 匹配除中括号的字符以外的任意一个字符。 例如 [^0-9]匹配任意一位非数字字符     [^a-z]表示任意一位非小写字母

grep    ^$                                  //空行


\   转义符   用于取消将特殊符号的含义取消


\{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位的小写字母



日期匹配格式:

grep  “[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}-”  文件名



字符串截取命令:

cut  列提取命令

cut:列提取命令,默认是按tab为分割符

-d  指定分隔符  -f指定列号



awk  截取一列

sed  替换字符


sed [选项] [动作] 文件名
选项:
-n 只输出经过sed处理过的行到屏幕
-e 允许一次应用多个动作
-i 直接修改文件,并且不由屏幕输出

动作:
a : 追加,在当前行后添加一行或多行
c : 整行替换
i : 插入,在当前行前插入一行或多行
p : 打印
s : 字串替换(替换格式与vim中的类似) '行范围s/旧字串/新字串/g'




wc  


-l 统计行数
-w 统计单词数 单词数 统计为以空格分开
-m 统计字符数 并且会统计回车符

sort

-f 忽略大小写
-n 以数值型进行排序
-r 反向排序
-t 指定分隔符,默认是制表符
-k n[,m] 按照指定的字段范围排序.从第n字段开始,m字段结束(默认到行尾

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值