欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

shell脚本编辑 正则表达式讲解

程序员文章站 2022-03-05 13:11:09
...

shell脚本编辑 正则表达式讲解

#!/bin/bash
fine="/root/regexptest.txt"
egrep ‘the’ $fine #包含the
egrep -v ‘the’ $fine #没有the
egrep -i ‘the’ $fine #the无论大小写
egrep ‘test|taste’ $fine # test或者taste
egrep ‘oo’ $fine #有oo
egrep ‘[^g]oo’ $fine #oo前面没有g
egrep ‘[^a-z]oo’ $fine #oo前面没有小写字母
egrep ‘[0-9]’ $fine #有数字
egrep ‘^the’ $fine #the开头
egrep ‘1’ $fine #小写字母开头
egrep ‘[a-Z]’ $fine #不是字母开头
egrep -v ‘.’ $fine #空行
egrep ‘g.{2}d’ $fine #g??d
egrep ‘o{2,}’ KaTeX parse error: Expected 'EOF', got '#' at position 17: …ine #̲两个o以上 egrep '^…’ $fine #g后面至少一个o最后gg结尾
egrep ‘[0-9]’ $fine #任意数字
egrep ‘oo’ $fine #包含oo
egrep ‘go{2,5}g’ $fine #g后面2到五个o后面再跟个g
egrep ‘go{2,}’ $fine #g后面两个o以上

4-1 shell脚本编程 正则练习题讲解
正则习题讲解:
sed awk
1.grep -n‘the’test.txt

2.grep -n‘the’test.txt

3.grep -in‘the’test.txt

4.grep -n‘test | taste’test.txt
test tast —> t[ae]st

5.grep -n ‘oo’ test.txt

6.grep -n‘[^g]oo’test.txt

7.grep -n‘[^a-z]oo’test.txt
grep -n ’ [ ^ [:lower:] ] oo’

8.grep -n‘[ 0-9 ]’test.txt
grep -n‘[ [ :digit:] ]’test.txt

9.grep -n‘2’test.txt

10.grep -n‘3’test.txt
grep -n ‘4

11.grep -n‘[a-zA-Z ]’test.txt

12.grep -n‘ .$’test.txt

13.grep -n‘^$’test.txt

14.grep -n‘g…d’test.txt

15.grep -n‘ooo*’test.txt

16.grep -n‘goo*g’test.txt

17.grep -n‘[ 0-9 ][ 0-9 ]’test.txt

18.grep -n‘o\ { 2\ }’test.txt

19.grep -n‘go\ { 2,5\ } g’test.txt

20.grep -n‘o\ { 2,\ }’test.txt

一键部署LNMP、DHCP、DNS、 FTP、 LAMP、 Mysql、samba、
nfs、NTP、

sed 处理文件

学习方法:
主要学习选项和条件指令
思路:sed是要替换vim的

语法结构:
1.前置命令 | sed选项’条件指令’
2.sed 选项 ’ 条件指令 ’ 文件

//1.条件可以使用行号或者/正则/
//2.没有条件时默认所有条件
//3.指令可以是增删改查等指令
//4.默认sed会输出所有的内容,可以使用-n  屏蔽输出
//5.支持扩展正则,使用-r选项

常用的选项:
-n:屏蔽输出
-r:让sed支持扩展正则
-i:直接修改源文件,默认只通过内存进行修改,源文件无影响

//多个指令用分号;进行间隔

指令:
p 输出

准备测试文件cp  /etc/passwd   ./passwd

1.打印第三行:
#    sed  -n‘3p’  passwd
2.打印第三到五行:

#    sed  -n‘3,5p’  passwd

3.打印第三行和第五行:
#    sed  -n‘3p;5p’passwd

4.打印第三行以及后面的十行:
#    sed  -n‘3,+10p’passwd

5.打印奇数行:
#    sed  -n‘1~2p’passwd

6.打印偶数行:
#    sed  -n‘2~2p’passwd
7.打印包含root的行:
#    sed  -n‘/root/p’passwd

8.打印以bash结尾的行:
#    sed  -n‘/bash$/p’passwd

‘$=’:输出文件的行数

指令:
p : 输出
d :删除
1.删除文件最后一行:
#sed ‘/KaTeX parse error: Expected 'EOF', got '#' at position 34: ….删除文件的空行: #̲sed ‘/^/d’ test.txt
s: 替换
语法结构:
1.sed ‘s/old/new’ test.txt


  1. a-z ↩︎

  2. a-z ↩︎

  3. :lower: ↩︎

  4. :lower: ↩︎