首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
shell 懒惰匹配
2024-11-05
shell 中 贪婪匹配 和 非贪婪匹配
举个栗子: v=jfedu.shiyiwen.com echo ${v%.*} 一个%为非贪婪匹配,即匹配最短结果.%从右到左进行非贪婪匹配,匹配什么呢? 匹配已 .*的字符. 那么当然是匹配到了.com 然后执行删除匹配到的字符.结果就是(这里的 "." 相当于定界符.而“*”是通配符) jfedu.shiyiwen echo ${v%%.*} 而这里执行贪婪匹配,即匹配最长结果就匹配到了 .shiyiwen.com 结果为 jfedu 这里在说一个 # 刚好和 %顺序相反而已,#是
Python: 用shell通配符匹配字符串,fnmatch/fnmatchcase
问题:想使用Unix Shell 中常用的通配符(比如*.py , Dat[0-9]*.csv 等) 去匹配文本字符串 解决方案: 1. fnmatch 模块提供了两个函数—— fnmatch() 和fnmatchcase() ,可以用来实现这样的匹配. 用法如下:>>> from fnmatch import fnmatch, fnmatchcase>>> fnmatch('foo.txt', '*.txt')True>>> fnmatch('foo
shell awk匹配字符串(从配置文件)
配置文件 config.properties xxx_yyy_lib_path="路径" xxx_yyy_bin_path="路径" 想通过shell来读入路径,shell中需要附带2个变量xxx,yyy readconfig.sh #!/bin/bash source ./config.properties xxx_declare=$ yyy_declare=$ #awk -F'=' 表示以等号为分割符(默认为空格),匹配出现字符串"/${xxx_dec
shell查找匹配行,输出该行并输出下面的一行
查找匹配行,输出该行并输出下面的一行 grep: grep -A 1 'keyword' file awk:awk '$0~/keyword/{print $0; getline; print $0;}' file
shell 变量匹配
${var%pattern} ${var%%pattern} ${var#pattern} ${var##pattern} ${var%pattern},${var%%pattern} 从右边开始匹配 ${var#pattern},${var##pattern} 从左边开始匹配 ${var%pattern} ,${var#pattern} 表示最短匹配,匹配到就停止,非贪婪 ${var%%pattern},${var##pattern} 是最长匹配 只有在pattern中使用了通配符才能有最长最
shell正则匹配IP地址
IP分成5大类: A类地址 ⑴ 第1字节为网络地址,其它3个字节为主机地址. ⑵ 范围:1.0.0.1—126.155.255.254 ⑶ 私有地址和保留地址: ① 10.X.X.X是私有地址(只能在局域网络使用的地址). ② 127.X.X.X是保留地址,循环测试. B类地址 ⑴ 前2个字节为网络地址,其它2个字节为主机地址. ⑵ 范围:128.0.0.1—191.255.255.254 ⑶ 私有地址和保留地址 ① 172.16.0.0—172.31.255.255是私有地址 ② 169.25
shell 正则匹配IP地址
比如255.255.255.255 ,共4段,我们将255分为四个部分,0-99,100-199,200-249,250-255 0-99:[1-9]?[0-9] # [1-9]? 表示1到9匹配1此或0次,0到9匹配一次 100-199:1[0-9][0-9] 200-249:2[0-4][0-9] 250-255:25[0-5] [root@Skip-ftp tmp]# cat test.txt 10.0.0.0.0 0.0.0.0 1.1.1.1 01.1.
【转】常用的shell脚本
from:http://blog.sina.com.cn/s/blog_4152a9f501013r6c.html 常用的shell脚本 (2012-10-10 22:09:07) 转载▼ 标签: 杂谈 分类: Internet和计算机 1.脚本之间传递参数 "1.sh"的脚本,接受参数.如下,如果有一个参数则赋值个sourceFile这个变量,否则用默认值. Shell代码 #!/bin/bash LANG=en_US.UTF-8 #get parameters sourceFile
查看当前使用的shell
1.实时查看当前进程中使用的shell种类:推荐 ps | grep $$ | awk '{print $4}' (注:$$表示shell的进程号) 2.最常用的查看shell的命令,但不能实时反映当前shell $ echo $SHELL 3.更简洁,但并不是所有shell都支持 $ echo $0 4.环境变量中shell的匹配查找 env | grep SHELL 5.口令文件中shell的匹配查找 cat /etc/passwd | grep muye 6.用ps -ef时候 $ ps
Unix Shell 通配符、转义字符、元字符、特殊字符
shell通配符: * 匹配0或多个字符 a*b a与b之间可以有任意长度的任意字符, 也可以一个也没有, 如aabcb, a01b, ab等 ? 匹配任意一个字符 a?b a与b之间有且只有一个字符, 可以是任意字符, 如aab, adb, a0b等 [list] 匹配list中的任意单一字符 a[xyz]b a与b之间有且只有一个字符, 且只能是x或y或z, 如: axb, ayb, azb. [!list] 匹配除list中的任意单一字符 a[!-]b a与b之间有且只有一个字符, 但不能
正则匹配所有的a标签
<a\b[^>]+\bhref="([^"]*)"[^>]*>([\s\S]*?)</a>分组1和分组2即为href和value解释:<a\b #匹配a标签的开始[^>]+ #匹配a标签中href之前的内容\bhref="([^"]*)" #匹配href的值,并将匹配内容捕获到分组1当中[^>]*> #匹配a标签中href之后的内容([\s\S]*?) #匹配a标签的value,并捕获到
Shell命令-文件及目录操作之file、md5sum
文件及目录操作 - file.md5sum 1. file:显示文件的类型 file命令的功能说明 用于辨识文件类型.通过 file 指令,我们得以辨识该文件的类型. file命令的语法格式 file [-bchiklLNnprsvz0] [--apple] [--mime-encoding] [--mime-type] [-e testname] file [-bcLvz][-f ][-m ...][文件或目录...] file命令的选项说明 file 参数很多,表1为 file 命令的参数及
php中的正则函数:正则匹配,正则替换,正则分割 所有的操作都不会影响原来的字符串.
有一个长期的误解, 如果要分组, 必须用 小括号 和 |, 而不能用 中括号 和 |. [ab|AB]表示的不是 匹配 ab或 AB, 而是表示 匹配 a,b, |, A, B 这5个字符中 的任意 一个 字符. 要表示 匹配 ab或 AB, 必须/只能 用 (ab|AB)才可以 总之, 使用 字符串函数 还是 使用 正则匹配, 主要看 被处理的 (通常是要被 匹配的或 要被替换的 字符串) 是 确定 的 不变的子串, 还是 不确定的, 如果是确定的, 已知的 那就用 字符串函数, 如果是不确定
Python中使用中文正则表达式匹配指定的中文字符串
业务场景: 从中文字句中匹配出指定的中文子字符串 .这样的情况我在工作中遇到非常多, 特梳理总结如下. 难点: 处理GBK和utf8之类的字符编码, 同时正则匹配Pattern中包含汉字,要汉字正常发挥作用,必须非常谨慎.推荐最好统一为utf8编码,如果不是这种最优情况,也有酌情处理. 往往一个具有普适性的正则表达式会简化程序和代码的处理,使过程简洁和事半功倍,这往往是高手和菜鸟最显著的差别. 示例一: 从QQ纯真数据库中解析出省市县等特定词语,这里的正则表达式基本能够满足业务场景,懒惰匹配?非
Shell脚本的特性
bash shell特性 1.命令补全和文件路径补全, 如果写错无法补全 table 2.命令历史记忆功能history 3.别名功能alias.unalias 4.常用快捷键ctrl+u,k,a,e,l,c,z,d,w,r,y 5.前后台作业控制bg,fg,jobs,screen 6.输入输出重定向 >,>>,1>,2>>,&>,cat < 7.管道 |将前者命令的标准输出交给后者命令的输入 tee 8.命令排序 ; 没有逻辑关系,无论分号前面的命
[PY3]——字符串的分割、匹配、搜索方法总结
?分割.匹配.搜索时可以用到什么样的解决方法? 分割方法总结 1. str.split( ) * 分割字符串 * 返回列表 s1='I love python' # 默认以空格为界定符,且多个空格都当做一个处理 print(s1.split()) ['I', 'love', 'python'] # (s1中有两个空格)如果这是指定了空格为界定符,则会有其中一个空格会被当做字符输出 print(s1.split(' ')) ['I', '', 'love', '', 'python'] # 可指定
shell编程基础进阶
为什么学习shell编程 shell脚本语言是实现linux/unix 系统管理机自动化运维所必备的重要工具,linux/unix系统的底层及基础应用软件的核心大部分涉及shell脚本的内容.每一个合格的linux系统管理员或运维工程师,都需要熟练的编写shell脚本语言,并能够阅读系统及各类软件附带的shell脚本内容 什么是shell shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕返回给用户,这
Linux下查看使用的是哪种shell的方法汇总【转】
转自:http://www.jb51.net/LINUXjishu/247797.html 查看当前发行版可以使用的shell 复制代码 代码如下: [root@localhost ~]$ cat /etc/shells/bin/sh/bin/bash/sbin/nologin 查看当前使用的shell方法 一.最常用的查看shell的命令,但不能实时反映当前shell 复制代码 代码如下: [root@localhost ~]$ echo $SHELL/bin/bash 二.下面这个用法并不是
php 正则匹配省市区
匹配指定前后内容中的值 如匹配/xxx-abc中的abc preg_match('/\/xxx-([^<]*)/i', $route, $matches); echo $matches[1]; 去除字符串中换行 // 1)使用转义字符函数 <?php $str = str_replace(array("/r/n", "/r", "/n"), '', $str); ?> // 2)使用正则表达式替换 <?php $str =
正则表达式入门(ed模糊匹配)
元字符: /b 代表着单词的开头或结尾,也就是单词的分界处.如果要精确地查找hi这个单词的话,我们应该使用/bhi/b. .是另一个元字符,匹配除了换行符以外的任意字符,*同样是元字符,它指定*前边的内容可以重复任意次以使整个表达式得到匹配. .*连在一起就意味着任意数量的不包含换行的字符. /d是一个新的元字符,匹配任意的数字,0/d/d-/d/d/d/d/d/d/d/d也就是中国的电话号码.为了避免那么多烦人的重复,我们也可以这样写这个表达式:0/d{2}-/d{8}. /s匹配任意的空白符
Linux shell 正则表达式用法
1.“ \ ” 用法 用于关闭其后续字符的特殊含义,恢复字符的本身含义,如:\\ 表示字符 \ 2. “ . " 用法 匹配任意单个字符 3. " * " 用法 匹配任意字符,可以是单个,也可以是多个,和 ”.“ 字符的去吧是是否可以匹配多个任意字符 4. "^" 的用法 在行的起始处开始匹配紧接着的字符,如 ^6,匹配行的首字符为6的行. 5." $ " 的用法 和 “^” 用法相似,表示在行的结尾处开始匹配字符,如 6$,匹配行的
热门专题
xlsm文件保护密码
jenkins安装与配置pytest allure
jps没有显示namenode节点但集群已经启动
获取button上的监听事件的文本框
plsql能连 sqlplus 12560
ls 查询最新修改的
sqlserver使用union all
SonarQube扫描仪执行未通过一般是什么原因
phpstudy memcache安装无效
cesium-workshop下载
input 正则 正整数
android 重启命令
sql PIVOT 使用多个聚合函数
python特征工程工具
mui 选择器设置年月起始日期,开始时间是去年
FMDB 怎么判断表存在
snmpv3 trap包格式
lock 死锁c# 占用线程
通过前端web请求zuul网关后端服务
mysql卸载重装之后root密码