操作系统三剑客命令
基础知识
- 正则符号
基础正则符号:
^ 以什么开头的信息进行匹配----- ^oldboy
$ 以什么结尾的信息进行匹配----- oldboy$
^$ 表示匹配空行信息
. 匹配任意一个且只有一个字符 grep “.”
* 匹配前一个字符连续出现0次或者多次
.* 匹配所有任意信息 类似于通配符 *
\ 将有意义的字符信息,转换成普通的字符进行识别
—>找出文件中以点结尾的信息
将特殊的扩展正则符号,转换成基础正则符号
将没有意义的字符转换成有意义的字符,(\n \t \r)
[ ] 匹配多个字符信息,多个字符信息匹配时是或者的关系
[ok] 在文件中找到有o的字符信息,有k的信息
**ps:**将一个字符串信息,进行拆分成一个一个的字符进行匹配
[^] 对匹配的字符进行排除(反选)
[^ok] 在文件中找到有o的字符信息和有k的字符信息,进行排除,选择其他的信息
-
扩展正则符号:
+ 匹配前一个字符连续出现一次或多次
| 利用竖线可以匹配多个字符信息
() 将多个字符信息汇总成一个整体,进行过滤
进行后项引用前项 (oldboy)\1–sed
{} 指定匹配前一个字符连续出现多少次
{n,m} 至少连续n次,最多连续m次
{n} 匹配只连续n次的信息
{n,} 至少连续n次,至多不限
{,m} 至少连续0次,至多连续m次
? 匹配前一个字符连续出现0次或者1次
grep命令识别扩展正则:egrep -E
sed命令识别扩展正则:sed -r
sed命令
sed命令概述说明:
sed命令:字符流编辑工具 (行编辑工具)==按照每行中的字符进行处理操作
ps:全屏编辑工具 vi/vim
sed命令作用说明:
-
擅长对行进行操作处理
-
擅长将文件的内容信息进行修改调整/删除
编写脚本:修改文件内容时
网络服务中的IP地址进行修改:
第一个步骤:vi ifcfg-eth0
第二个步骤:重启网络服务
第三个步骤:检查测试
具体功能作用:
- 文件中添加信息的能力(增)
- 文件中删除信息的能力(删)
- 文件中修改信息的能力(改)
- 文件中查寻信息的能力(查)
sed命令的语法信息
sed [OPTION]... {
script-only-if-no-other-script} [input-file]...
命令 参数 条件-处理(指令) 处理文件信息
# 显示文件中有oldboy的信息
sed -n 'oldboy' oldboy.txt
sed命令执行原理
sed命令实践测试—查看信息
# 测试信息
cat >person.txt<<EOF
101,oldboy,CEO
102,zhangyang,CTO
103,Alex,COO
104,YY,CFO
105,feixue,CIO
EOF
# 测试1 将有oldboy行的信息找出来
[root@wenyi] ~]# sed -n '/oldboy/p' person.txt
101,oldboy,CEO
[root@wenyi] ~]# sed -n '1p' person.txt
101,oldboy,CEO
# 测试2 将有oldboy到Alex行的信息都输出出来
[root@wenyi] ~]# sed -n '/oldboy/,/Alex/p' person.txt
101,oldboy,CEO
102,zhangyang,CTO
103,Alex,COO
[root@wenyi] ~]# sed -n '1,3p' person.txt
101,oldboy,CEO
102,zhangyang,CTO
103,Alex,COO
# 测试3 将有oldboy的行和Alex的行的信息输出出来
[root@wenyi] ~]# sed -n '/oldboy/p;/Alex/p' person.txt
101,oldboy,CEO
103,Alex,COO
[root@wenyi] ~]# sed -n '1p;3p' person.txt
101,oldboy,CEO
103,Alex,COO
sed命令添加信息的方法
- 在文件第一行添加信息
# 在要输入的信息前面添加'行号+i'
[root@wenyi] ~]# sed '1i100,oldgrile,UFO' person.txt
100,oldgrile,UFO
101,oldboy,CEO
102,zhangyang,CTO
103,Alex,COO
104,YY,CFO
105,feixue,CIO
- 在文件最后一行添加信息
# 在要添加的文件前面添加$a($:表示行号,可以是数字,但是如果不知道最后一行是多少行的时候 就用$)
[root@wenyi] ~]# sed '$a100,oldgrile,UFO' person.txt
101,oldboy,CEO
102,zh