三剑客-sed 增删改查

1.sed是一款字符流编辑工具(行编辑工具) 常用于处理配置文件

按照每行中的字符进行处理操作

sed命令作用说明:

1). 擅长对行进行操作处理

2). 擅长将文件的内容信息进行修改调整/删除

2.常见指令/参数


sed命令的指令信息

p  print        输出信息

i  insert      插入信息,在指定信息前面插入新的信息

a  append      附加信息,在指定信息后面附加新的信息

d  delete      删除指定信息

s  substitute  替换信息 s###g(全局替换)

c              替换修改指定的一整行信息

sed命令的参数信息

    -n  取消默认输出

    -r  识别扩展正则

    -i  真实编辑文件(将内存中的信息覆盖到磁盘中)

    -e  识别sed命令多个操作指令

注意:n和i不能连用 会把内容给清空

3.sed运行原理(读取到内存中,默认按行处理,每行都会输出)

sed运行原理

4.增

在文件第一行添加信息: sed '1i信息' 文件路径

在文件最后一行添加信息: sed '$a信息' 文件路径

demo: 在有oldboy行的前面添加oldgirl 后面添加olddog信息

sed -e '/oldboy/ioldgril' -e '/oldboy/aoldgog' test.txt

在文件中添加多行信息 sed '$a100\n101'  text.txt           //利用\n

企业中编写配置文件:

IPaddress=10.10.10.1

mask=255.255.255.0

gateway=10.10.10.254

sed '$aIPaddress=10.10.10.1\nmask=255.255.255.0\ngateway=10.10.10.254' 文件名称

5.删除

删除第三行信息 sed '3d' text.txt

删除文件二到六行的信息 sed '2,6d' text.txt

删除第三和第六行 sed '3d;6d' text.txt 

删除文件中带有oldboy的信息 sed '/oldboy/d' test.txt

问题: 如何利用sed命令取消空行显示

1.sed -n '/./p' text.txt

2.sed '/^$/d' person.txt

3.sed -n '/^$/!p' person.txt

6.改

sed 's#原内容#修改后内容#g' 文件信息

sed 's#oldgirl#oldboy#g' test.txt

sed 's#()#\n#g' 文件信息 后项引用前项进行替换修改

难点:利用sed取出ip地址

ip a s eth0|sed -rn '3s#^.*net (.*)/24.*#\1#gp'

补充: 修改文件内容直接进行自动备份

sed -i.bak 's#oldboy#oldold#g' person.txt

补充02: 在真实替换文件内容时候,一定不能让n和i参数同时出现

    [root@oldboyedu ~]# sed -ni 's#Alex#aaaa#gp' person.txt

    103,aaaa,COO

[root@oldboyedu ~]# cat person.txt

    103,aaaa,COO

说明: ni和参数同时使用,会将文件内容进行清空

批量修改文件的扩展名称 将oldboyxx.txt扩展名修改为oldboyxx.jpg

ls oldboy*.txt|sed -r 's#(.*)txt#mv & \1jpg#g' | bash

批量重命名专业命令: rename

rename 需要修改的内容 改成什么 文件地址

rename txt jpg oldboy.txt

7.查

查询单行 sed -n '3p' person.txt   //不加-n会输出所有    -n取消默认输出

多行(连续) sed -n '4,6p' person.txt 

多行不连续 sed -n '3p;6p' person.txt

根据文件内容的信息进行查询

sed -n '/oldboy/p' person.txt

输出多行内容

sed -n '/oldboy/,/Alex/p' person.txt

输出多行内容(不连续)

sed -n '/oldboy/p;/Alex/p' person.txt 

8. 文件中添加内容方法:

01. vim/vi

02. cat >>xxx<

03. echo -e "xxx\nxxx"

04. sed 'na/i xxxx\nxxxx\nsxxxx'

你可能感兴趣的:(三剑客-sed 增删改查)