shell脚本编辑 正则表达式讲解
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
上一篇: 行排序命令sort