您的位置:首页 > 运维架构 > Shell

SHELL实战day4

2018-12-20 19:22 603 查看
一  正则介绍_grep

1:grep用来过滤关键词
grep [-cinvABC] 'word' filename
-c 行数 (count)
-i 不区分大小写
-n 显示行号
-v 取反
-r 遍历所有子目录

-A 后面跟数字,过滤出符合要求的行以及下面n行
-B 同上,过滤出符合要求的行以及上面n行
-C 同上,同时过滤出符合要求的行以及上下各n行
2:示例
grep -n 'root' /etc/passwd
grep -nv 'nologin' /etc/passwd
grep '[0-9]'/etc/inittab
grep -v '[0-9]'/etc/inittab
grep -v '^#' /etc/inittab
grep -v '^#' /etc/inittab|grep -v '^$'
grep '^[^a-zA-Z]' test.txt
grep 'r.o' test.txt
.表示任意一个字符
grep 'oo' test.txt
表示左边的字符重复0到n次
grep '.' test.txt
.表示任意字符
grep 'o{2}' /etc/passwd
{}表示前面字符的重复范围
egrep 'o{2}' /etc/passwd
和上面一样的效果
egrep 'o+' /etc/passwd
+符号前面字符的一次或多次
egrep 'oo?' /etc/passwd
?表示前面字符重复0或1次
egrep 'root|nologin' /etc/passwd
|表示或者的意思
egrep '(oo){2}' /etc/passwd

二 sed

1: sed -n '5'p test.txt
sed -n '1,5'p test.txt
sed -n '1,$'p test.txt
sed -n '/root/'p test.txt
sed -n '/root/'Ip test.txt
匹配大小写

sed -n '/^1/'p test.txt
sed -n 'in$'p test.txt
sed -n '/r..o/'p test.txt
sed -n 'oo*'p test.txt
sed -e '1'p -e '/111/'p -n test.txt

2: sed '1'd test.txt
sed '1,3'd test.txt
sed -i '1,3'd test.txt
删除文件内容

sed '/oot/'d test.txt
sed '1,2s/ot/to/g' test.txt
sed 's#ot#to#g' test.txt
sed 's/[0-9]//g' test.txt
sed 's/[a-zA-Z]//g' test.txt
sed -r 's/(rot)(.)(bash)/\3\2\1/' test.txt

sed 's/^.$/123&/' test.txt
sed -i 's/ot/to/g' test.txt

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell 正则 表达式