无法运行宏,可能是因为该宏在此工作簿中不可用,或者所有的宏都被禁用的解决方法
2013-01-07 15:37
1316 查看
一、grep 命令
grep –help查看grep命令发现可选参数太多。这里挑几个常用的来举例说明。
示例文件如下:
[root@localhost test]# grep -c ‘xy’grep.txt
12
-i :忽略大小差异
[root@localhost test]# grep -ci ‘xy’grep.txt
14 #发现忽略大小写多了2行。
-n :显示行号
-B+n(n代表数字) :Before的意思,显示匹配字符前n行数据
二、基本正则表达式
申明:C:表示单个字符(char),S:表示字符串(String)
^S :表示搜索以S开头的行。
S$ :搜索以S结束的行,与^对应
. :点号,匹配任意一个字符,注意只是一个字符
egrep :grep命令的扩展命令。与grep–E作用一样。
C+ :重复前面单个字符1到多次。即需包含前面这个字符
本文出自 “丁同学1990” 博客,请务必保留此出处http://dingtongxue1990.blog.51cto.com/4959501/1692563
grep –help查看grep命令发现可选参数太多。这里挑几个常用的来举例说明。
示例文件如下:
[root@localhost test]# more grep.txt xy yxay xxxy yaxy yyxxyyxx yyaaxxyyaa xaaay axay xaya rootxyxyxyxyxyxyx xyxyxyxyxyxyx xyxyxyxyxyx xyxXYXYXYXyxyx xyxyxyxyxyxyxxy xyxyxixixixinsnsnsnxixiyxyx XYXYXxy XaaaaY XYXYXYXYXYX XsdfsfasfY XXYYYAAAA XXXAAAAYYY-c :显示匹配的次数
[root@localhost test]# grep -c ‘xy’grep.txt
12
-i :忽略大小差异
[root@localhost test]# grep -ci ‘xy’grep.txt
14 #发现忽略大小写多了2行。
-n :显示行号
[root@localhost test]# grep -n 'xyxy'grep.txt 10:rootxyxyxyxyxyxyx 11:xyxyxyxyxyxyx 12:xyxyxyxyxyx 14:xyxyxyxyxyxyxxy 15:xyxyxixixixinsnsnsnxixiyxyx-A+n(n代表数字) :After的意思,显示匹配字符后n行数据
-B+n(n代表数字) :Before的意思,显示匹配字符前n行数据
[root@localhost test]# grep -nA 2 'xixi'grep.txt 15:xyxyxixixixinsnsnsnxixiyxyx 16-XYXYXxy 17-XaaaaY
[root@localhost test]# grep -nB 2 'xixi'grep.txt 13-xyxXYXYXYXyxyx 14-xyxyxyxyxyxyxxy 15:xyxyxixixixinsnsnsnxixiyxyx-v :显示没有匹配的行。
[root@localhost test]# grep -nv 'x'grep.txt 17:XaaaaY 18:XYXYXYXYXYX 19:XsdfsfasfY 20:XXYYYAAAA 21:XXXAAAAYYY注意:一般为了显示明显,一般会使用—color=auto。一般系统会通过别名的方式自带此参数,如果没有可以自己添加个别名就可以了:alias grep='grep --color=auto'。还有对于要查找的字符应用‘’(单引号)引起来,一般不建议用双引号,容易被程序误解。
二、基本正则表达式
申明:C:表示单个字符(char),S:表示字符串(String)
^S :表示搜索以S开头的行。
[root@localhost test]# grep -n '^xy'grep.txt #查找以xy开头的行 1:xy 11:xyxyxyxyxyxyx 12:xyxyxyxyxyx 13:xyxXYXYXYXyxyx 14:xyxyxyxyxyxyxxy 15:xyxyxixixixinsnsnsnxixiyxyx [root@localhost test]# grep -n '^xyx'grep.txt #查找以xyx开头的行 11:xyxyxyxyxyxyx 12:xyxyxyxyxyx 13:xyxXYXYXYXyxyx 14:xyxyxyxyxyxyxxy 15:xyxyxixixixinsnsnsnxixiyxyx[root@localhost test]# grep -n 'xy^'grep.txt #注意^是放在最前面的。
S$ :搜索以S结束的行,与^对应
[root@localhost test]# grep -n 'xyx$'grep.txt #查找以xyx结束的行 10:rootxyxyxyxyxyxyx 11:xyxyxyxyxyxyx 12:xyxyxyxyxyx 13:xyxXYXYXYXyxyx 15:xyxyxixixixinsnsnsnxixiyxyx[root@localhost test]# grep -n '$xy'grep.txt #同样$需要放在后面,放在字符串前面是不对的
. :点号,匹配任意一个字符,注意只是一个字符
[root@localhost test]# grep -n 'a..x'grep.txt #查找行中有a..x的 6:yyaaxxyyaa\ :斜杠,转义字符
[root@localhost test]# grep -n"\"" grep.txt #通过转义 25:"xy" [root@localhost test]# grep -n '"'grep.txt #可以看到通过单引号引用时不需要转义字符 25:"xy"[] :匹配[]内的字符中任意一个
[root@localhost test]# grep -n [higk]grep.txt 15:xyxyxixixixinsnsnsnxixiyxyx 22:x,y,z,e,f,g,h
[c1-c2] :匹配字符范围中的一个字符 [root@localhost test]# grep -ni [h-k]grep.txt 15:xyxyxixixixinsnsnsnxixiyxyx 22:x,y,z,e,f,g,h[^S] :匹配字符串内字符以外的字符
[root@localhost test]# grep -ni[^aefjkxyz\'\"] grep.txt 10:rootxyxyxyxyxyxyx 15:xyxyxixixixinsnsnsnxixiyxyx 19:XsdfsfasfY 22:x,y,z,e,f,g,hc\{n1,n2\} :前面的字符重复n1,n2次。注意是重复出现
[root@localhost test]# grep -ni 'xa\{3,5\}'grep.txt #重复a 3-5次,这里-i忽略大小 7:xaaay 17:XaaaaY 21:XXXAAAAYYY [root@localhost test]# grep -ni 'xy\{3,5\}'grep.txt #同样重复y 3-5次 20:XXYYYAAAA\<S :匹配文中单词是以S开头的
[root@localhost test]# grep -n '\<yx'grep.txt 2:yxay S\> :匹配文中单词是以S结尾的 [root@localhost test]# grep -n 'xyxyx\>'grep.txt 10:rootxyxyxyxyxyxyx 11:xyxyxyxyxyxyx 12:xyxyxyxyxyxC* :匹配前面的单个字符重复0到多次。即包不包含C字符无所谓
[root@localhost test]# grep -n 'axy*'grep.txt #是否包含y无所谓 4:yaxy 6:yyaaxxyyaa 8:axay三、扩展正则表达式
egrep :grep命令的扩展命令。与grep–E作用一样。
C+ :重复前面单个字符1到多次。即需包含前面这个字符
[root@localhost test]# egrep -n 'ay+'grep.txt #带有a开始,并且紧跟后面包含至少一个y 2:yxay 7:xaaay 8:axay 9:xayaC? :匹配0次或1次前面的字符C
[root@localhost test]# egrep -n 'ax?'grep.txt #以带有a开头后跟不跟x无所谓 2:yxay 4:yaxy 6:yyaaxxyyaa 7:xaaay 8:axay 9:xaya 17:XaaaaY 19:XsdfsfasfY
[root@localhost test]# egrep -n 'ax+'grep.txt #带有a开头后紧跟x或者多个x如6 4:yaxy 6:yyaaxxyyaa 8:axayS|S :匹配前面的字符串或后面字符串
[root@localhost test]# egrep -n 'aaxx|aaaa'grep.txt 6:yyaaxxyyaa 17:XaaaaY(S) :匹配括号字符串S
[root@localhost test]# egrep -n'(axx)|(xixi)' grep.txt 6:yyaaxxyyaa 15:xyxyxixixixinsnsnsnxixiyxyx
本文出自 “丁同学1990” 博客,请务必保留此出处http://dingtongxue1990.blog.51cto.com/4959501/1692563
相关文章推荐
- 无法运行"Hi3516CV-DEMB-uboot-DDR...-BUS_266M.xsl"宏。可能是因为该宏在此工作簿中不可用,或者所有的宏都被禁用。
- 可能是因为该宏在此工作簿中不可用,或者所有的宏都被禁用
- vba6.3提取自WPS2012专业增强版 带教程 (wps可能是因为该宏在此工作簿中不可用)
- Win7 VS2010下开发的CS软件,安装到XP下无法运行或者桌面快捷方式无法显示图标的问题解决方法
- Vista中所有的.exe可执行程序都无法运行的解决方法
- “超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。”问题的解决方法
- 当所有安装过的程序(exe)文件都无法运行时的解决方法
- XP里所有视频无法播放、黑屏或者白屏问题解决方法
- 由于虚拟机监控程序未运行,无法启动 Windows Phone Emulator。可能原因是为打开硬件辅助虚拟化。的解决方法
- 无法获取IP地址,运行“ipconfig/renew”命令后提示“RPC服务器不可用”的解决方法
- [Android]HoloEverywhere框架在4.0+上运行时候optionmenu可能需要点击二次或者响应二次的解决方法
- kafka运行错误:找不到或者无法加载主类等错误解决方法
- windows安装程序无法将windows配置为在此计算机的硬件上运行 解决方法
- 无法获取IP地址,运行“ipconfig/renew”命令后提示“RPC服务器不可用”的解决方法
- ResGen.exe 可能无法运行,因为命令行的长度为XX个字符,超过了命令的最大长度。若要解决此问题,请 (1) 删除不需要的程序集引用,或者 (2) 缩短这些引用的路径。
- 时代互联 域名注册查询接口api的使用 (w3Sockets)(这篇文章,关于是放到C:\WINDOWS或者是C:\WINDOWS\system32要亲自试试,附带在 server 2008 R2下无法运行的解决方法)
- 密钥发行中心(KDC)找不到相应的证书用于智能卡登录,或者无法验证 KDC 证书。如果不解决该问题,智能卡登录可能不会正常工作。若要更正该问题,请使用 certutil.exe 验证现有的 KDC 证书或注册新的 KDC 证书。
- MySQL忘记密码或者因为修改mysql.user导致无法登陆解决方法
- ubuntu 解决“无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)”的方法
- Ubuntu16.04系统下 解决“无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)、无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?”的方法