赞
踩
双引号使用:
grep oldboy /etc/passwd
grep “oldboy” /etc/passwd
echo oldgirl
echo “oldgirl”
find /etc/ -name “*.conf”
简单地说,正则表达式就是为处理大量的字符串及文本定义的一套规则和方法。假设”@“代表“I am”,“!”代表“oldboy”,则执行echo “@!”的结果就是输出“I am oldboy”。通过这些特殊符号的辅助,管理员就可以快速过滤、替换或输出需要的字符串,让Linux运维更高效。
做 写 想 【讲】
alias net='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
测试准备:
cat >>/etc/profile<<EOF #<==注意EOF后面不要有多余的空格。 export LC_ALL=C EOF #<==注意EOF前后都没有空格或其他符号。 source /etc/profile #<==使修改的内容生效。 mkdir ~ /test -p cat >~/test/oldboy.txt<<EOF I am oldboy teacher! I teach linux. I like badminton ball ,billiard ball and chinese chess! our site is http://www.oldboyedu.com my qq num is 49000448. not 4900000448. my god ,i am not oldbey,but OLDBOY! EOF cd ~/test cat oldboy.txt
给要过滤的内容添加标识,然后把符合标识的内容过滤。
字符 | 作用 |
---|---|
^ | 尖角号,用法为^oldboy,表示匹配以oldboy单词开头的行 |
$ | 美元符,用法为oldboy$,表示匹配以oldboy单词结尾的行 |
^$ | 组合符,表示空行,逻辑解释就是以^结尾的行,或者以$开头的行 |
. | 点号,表示匹配任意一个且只有一个字符(但是不能匹配空行) |
\ | 转义字符,让有特殊含义的字符脱掉马甲,现出原形,如\.只表示小数点 |
* | 匹配前一个字符(连续出现)0次或1次以上 注意,当重复0次的时候,表示啥也没有(空),即匹配所有内容 |
.* | 组合符,匹配所有内容 |
^.* | 组合符,匹配以任意多个字符开头的内容 |
.*$ | 组合符,以任意多个字符结尾的内容 |
[abc] | 匹配[]集合内的任意一个字符a或b或c;[abc]也可写成[a-c] |
[^abc] | 匹配不包含后的任意字符a或b或c,这里的表示对[abc]的取反,^不能用!替代 |
^ 尖角号,用法为^oldboy,表示匹配以oldboy单词开头的行
[root@oldboy test]# grep ^I oldboy.txt #输出以I开头的行
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
[root@oldboy test]# ls -l ~|grep ^d #输出以d开头的行
drwxr-xr-x. 2 1000 root 33 Jul 1 2030 abc
drwxr-xr-x. 2 root root 45 Jun 6 2019 girlLove
drwxr-xr-x. 3 root root 17 May 8 2021 oldboy_dir
drwxr-xr-x. 2 root root 24 May 25 11:24 test
$ 美元符,用法为oldboy$,表示匹配以oldboy单词结尾的行
[root@oldboy test]# grep m$ oldboy.txt #输出以m结尾的行
our site is http://www.oldboyedu.com
[root@oldboy test]# ls -lF ~|grep /$
drwxr-xr-x. 2 1000 root 33 Jul 1 2030 abc/
drwxr-xr-x. 2 root root 45 Jun 6 2019 girlLove/
drwxr-xr-x. 3 root root 17 May 8 2021 oldboy_dir/
drwxr-xr-x. 2 root root 24 May 25 11:24 test/
^$ 组合符,表示空行,逻辑解释就是以^结尾的行,或者以$开头的行
[root@oldboy test]# cat oldboy.txt -n
1 I am oldboy teacher!
2 I teach linux.
3
4 I like badminton ball ,billiard ball and chinese chess!
5 our site is http://www.oldboyedu.com
6 my qq num is 49000448.
7
8 not 4900000448.
9 my god ,i am not oldbey,but OLDBOY!
[root@oldboy test]# grep ^$ oldboy.txt
[root@oldboy test]# grep -n ^$ oldboy.txt #输出空行并打印行号
3:
7:
. 点号,表示匹配任意一个且只有一个字符(但是不能匹配空行)
[root@oldboy test]# grep . oldboy.txt I am oldboy teacher! I teach linux. I like badminton ball ,billiard ball and chinese chess! our site is http://www.oldboyedu.com my qq num is 49000448. not 4900000448. my god ,i am not oldbey,but OLDBOY! [root@oldboy test]# grep -n . oldboy.txt 1:I am oldboy teacher! 2:I teach linux. 4:I like badminton ball ,billiard ball and chinese chess! 5:our site is http://www.oldboyedu.com 6:my qq num is 49000448. 8:not 4900000448. 9:my god ,i am not oldbey,but OLDBOY!
\ 转义字符,让有特殊含义的字符脱掉马甲,现出原形,如\.只表示小数点
[root@oldboy test]# grep "\." oldboy.txt #匹配带点的行 I teach linux. our site is http://www.oldboyedu.com my qq num is 49000448. not 4900000448. [root@oldboy test]# grep "\.$" oldboy.txt #匹配以点结尾的行 I teach linux. my qq num is 49000448. not 4900000448. [root@oldboy test]# grep ".$" oldboy.txt #匹配以任意一个字符结尾的行 I am oldboy teacher! I teach linux. I like badminton ball ,billiard ball and chinese chess! our site is http://www.oldboyedu.com my qq num is 49000448. not 4900000448. my god ,i am not oldbey,but OLDBOY!
* 重复前一个字符(连续出现)0次或N次
0*
空
0
00
00000
[root@oldboy test]# grep "0*" oldboy.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
our site is http://www.oldboyedu.com
my qq num is 49000448.
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
[root@oldboy test]# grep "00*" oldboy.txt
my qq num is 49000448.
not 4900000448.
注意,当重复0次的时候,表示啥也没有(空),即匹配所有内容
.* 组合符,匹配所有内容
[root@oldboy test]# grep ".*" oldboy.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
our site is http://www.oldboyedu.com
my qq num is 49000448.
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
^.* 组合符,匹配以任意多个字符开头的内容
[root@oldboy test]# grep "^.*" oldboy.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
our site is http://www.oldboyedu.com
my qq num is 49000448.
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
.*$ 组合符,以任意多个字符结尾的内容
[root@oldboy test]# grep ".*$" oldboy.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
our site is http://www.oldboyedu.com
my qq num is 49000448.
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
1.过滤/etc/passwd中以nologin结尾的行。
grep "nologin$" /etc/passwd
2.过滤/etc/passwd中以o开头的行。
grep "^o" /etc/passwd
3.过滤/etc/passwd中至少含有1个0字符串的行。
grep "00*" /etc/passwd
4.过滤/etc/passwd中的空行。
grep "^$" /etc/passwd
5.过滤/etc/目录中(不含子目录)下的所有文件。
ls -l /etc|grep "^-"
6.过滤/etc/services中含有点号的行。
grep "\." /etc/services
[abc] 匹配[]集合内的任意一个字符a或b或c;[abc]也可写成[a-c]
[root@oldboy test]# grep "[a-z0-9A-Z\.\!:,/]" oldboy.txt I am oldboy teacher! I teach linux. I like badminton ball ,billiard ball and chinese chess! our site is http://www.oldboyedu.com my qq num is 49000448. not 4900000448. my god ,i am not oldbey,but OLDBOY! [root@oldboy test]# grep "." oldboy.txt I am oldboy teacher! I teach linux. I like badminton ball ,billiard ball and chinese chess! our site is http://www.oldboyedu.com my qq num is 49000448. not 4900000448. my god ,i am not oldbey,but OLDBOY!
[^abc] 匹配不包含后的任意字符a或b或c,这里的表示对[abc]的取反,^不能用!替代
[root@oldboy test]# grep "[a-z0-9A-Z]" oldboy.txt I am oldboy teacher! I teach linux. I like badminton ball ,billiard ball and chinese chess! our site is http://www.oldboyedu.com my qq num is 49000448. not 4900000448. my god ,i am not oldbey,but OLDBOY! [root@oldboy test]# [root@oldboy test]# [root@oldboy test]# [root@oldboy test]# [root@oldboy test]# grep "[^a-z0-9A-Z]" oldboy.txt I am oldboy teacher! I teach linux. I like badminton ball ,billiard ball and chinese chess! our site is http://www.oldboyedu.com my qq num is 49000448. not 4900000448. my god ,i am not oldbey,but OLDBOY!
字符 | 作用 |
---|---|
+ | 匹配前一个字符1次或多次 |
[ 声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/153845 推荐阅读 相关标签 Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。 |