常规正则表达式

正则表达式
\*   匹配任意字符串(换行符不行)
^1234$ ^ 匹配字符串开头,$ 匹配结尾,所以本表达式严格匹配 1234 
^1234|5678$ | 是或的意思,表示匹配 1234 或 5| 
^123[0-9]$ [ ] 表式匹配其中的任意一个字符,其中的 - 是省略的方式,表示 0 到 9,它等于 [0123456789] 也就是说它会匹配 1230,1231,1232 ... 1239 
^123/d$ 同上,/d 等于 [0-9] 
^123/d+$ + 号表示1个或多个它前面的字符,因为 + 前面是 /d,所以它就等于1个或多个数字,实际上, 它匹配任何以123开头的至少4位数的数字串,如1230,12300,12311,123456789等
 ^123/d*$ *号与+号的不同在于,它匹配0个或多个前面的字符。 所以,它匹配以123开头的至少3位数的数字串,如 123,123789 
^123 跟上面一样,由于没有结尾的$,它匹配任何以123开头的数字串,但除此之外,它还匹配后面是字母的情况,如 123abc 
123$ 匹配任何以123结尾的字符串 
^123/d{5}$ {5}表示精确匹配5位,包含它前面的一个字符。在这里,它匹配以123开头的所有8位的电话号码 
^123(/d+)$ ( )在匹配中不起作用,跟^123/d+是相同的,但它对匹配结果有作用, 匹配结果中除123之外的数字都将存储在$1这个变量中,在下一步使用 
^123(/d)(/d+)$ 如果用它跟12345678匹配,则匹配成功,结果是 $1 = 4, $2 = 5678
^(\+){0,1}[0-9]*)$   匹配+开头,最多匹配1个+,最少是不匹配+,后面匹配任意数字
{} 匹配的次数 {12}匹配前面的内容12次,{1,5}匹配最少1次,最多5次,最少优先,{3,}匹配最少3次以上
vim的快捷操作
vim的视图化模式(ctrl+v),可以选中多行内容,进行统一删除(选中后按d键)或者插入(选中后按I键,之后插入内容,再按esc键)
vim中进行批量替换
:%s #old#new#g
三剑客awk、sed、grep
awk '{if($2 > 1000){print $0}}' #可以判断多次,输出多行内容,$0是当前行的全部内容 awk的match函数,匹配字符串并返回匹配结果的位置,没有则返回0 echo "hello world" | awk '{match($0,//world/);print RSTART}' awk 'gsub(",",""){print}' 文件名 #把逗号替换为空 sed -i 's#:#\n#g' file.txt #把冒号替换成换行
sed -i "s/^/expire /g" file.txt #在每行开头加入expire
sed -i "s/$/ 100/g" file.txt #在每行末尾加入100
awk -F , '{print "hello",$1,"world",$2}' file.txt ------> hello $1 world $2 #双引号括起来的内容会在输出时添加到每一行,","逗号输出时以空格形式
awk -F'test1' '{print $1}' file1 #awk的-F可以指定每行内容里的某个字段,进行指定输出
sed -i "2a -Djava.rmi.server.hostname=xxxx" catalina.sh #在文件的第2行的下一行添加内容,即第3行

 

posted @ 2023-10-18 15:48  菜菜陈  阅读(26)  评论(0)    收藏  举报