在学校学的正则表达式,在这里简单写一下。
^ 行首以此开始
$ 行尾以此结束
. 除换行符 \n之外的任意一个字符
* 匹配前面的子表达式>=0个字符
[ ] 组中一个字符
[^] 匹配一个不在范围内的字符
\ 转义字符 '。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("
\w 字符和数字
\W 非字符和数字
\b 单词分界线
\s 空白字符空格、制表符、换页符
\S 非空白字符
结合 grep 语句来一起实现 -i 不区分大小写 -c 只输出匹配的行数 -E 使用扩展正则表达式
1.匹配所有以le开头的字符串
grep '\<le' ch10-love.txt
2.匹配所有以le结束的字符串
grep 'le\>' ch10-love.txt
3.匹配所有第一个字符是s,紧跟四个字符,然后是e
grep '\<s....e' ch10-love.txt
4.匹配所有0个或多个空格,空格后跟着sample
grep '\s*sample' ch10-love.txt
5.匹配所有包含Sample或sample的行
grep '[Ss]ample' ch10-love.txt
6.匹配第一个字符是从A-Z中间的一个,后面跟着sample
grep '\<[A-Z]sample' ch10-love.txt
7.匹配第一个字符不是从A-Z中间的一个,后面跟着sample
grep '\<[^A-Z]sample' ch10-love.txt
8.匹配sample.(通常点表示任何字符,这里用\转义元字符点)
grep 'sample\.' ch10-love.txt
9.匹配以love单词开头的行
grep ^love ch10-love.txt
10.匹配以love单词结束的行
grep love$ ch10-love.txt
15.匹配字母l后紧跟0个或多个文字或数字字符,然后是e
grep "l\w*e" ch10-love.txt
16.匹配love后面是一个非单词字符,如标点符号
grep "love\W" ch10-love.txt
17.仅仅匹配单词love
grep "\blove\b" ch10-love.txt
22.将10-1中you替换成888
:%s/\<you\>/888/g
26..找到sample.这个字符,注意字符.
grep "sample\." ch10-love.txt
27.找到所有love,不区分大小写
grep "[Ll]ove" ch10-love.txt
29.匹配第一个字符是从A-Z中间的一个,后面跟着sample
grep "[A-Z]sample" 102
30.匹配所有0个或多个空格,空格后跟着sample
grep "\s*sample" 102
*31.显示当前目录中,有10这两个字符的文件
ls | grep "10"
*32.某个文件中含有 boot 的字眼,而这个文件在 /etc/ 底下,我要如何找到?
ls /etc |grep "boot"
33.在 /etc 底下,只要含有 XYZ 三个字符的任何一个字符的那一行就列出来,要怎样进行
ls /etc | grep [XYZ]
34.找出在 /etc 底下,档案内容含有 * 的文件名称?
ls /etc | grep "\*"