Linux四剑客之sed

一、四剑客之sed

sed是一种流编辑器,主要用于文本处理,能够完美的配合正则表达式使用。处理时,把当前处理的行存储在临时缓冲区,成为"模式空间"

二、sed参数

1.常用参数

****-i 	直接修改文件内容,而不是输出到终端。****
-e	以指定的脚本来处理输入的文本文件
-r	启用扩展的正则表达式,若与其他选项一起使用,应作为首个选项
-f	以指定的脚本文件来处理输入的文本文件
-h或--help	显示帮助
-n或--quiet或--silent 	仅显示script处理后的结果
-V或--version	显示版本信息

2.动作指令

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何东东;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :替换,通常这个 s 的动作可以搭配正规表示法,1,20s/old/new/g 

3.语法格式

sed [-hnV][-e<script>][-f<script文件>][文本文件]

显示信息:
输出奇数行:				sed -n 'p;n' test.txt
输出偶数行:				sed -n 'n;p' test.txt
显示第3行信息:			sed -n '3p' test.txt
显示1~3行信息:			sed -n '1,3p' test.txt
显示13行信息:			sed -n '1p;3p' test.txt

添加信息:
在第四行前添加test:		sed '4i test' cats.txt
在第四行后添加test1:		sed '4a test1' cats.txt
最后一行添加:			sed -i '$a test2' cats.txt		# $匹配最后一行
在ccat后面添加test2:		sed -i '/^ccat/a test2' cats.txt
在ccat前面添加test3:		sed -i '/^ccat/i test3' cats.txt

删除信息:
删除第3行:				sed -i '3d' cats.txt
删除3-5行:  			sed '3,5d' cats.txt
删除最后1行: 			sed '$d' cats.txt | cat -n   # 
删除包含dog的行: 		sed '/dog/d' cats.txt
删除包含cat&Cat行:		sed '/^[cC]at/d' cats.txt
删除cat&Cat且过滤掉空行:  sed '/^[cC]at/d' cats.txt | sed '/^$/d'

4.实例

#1.取出IP地址
[ Nginx ~] #ifconfig ens160 | sed -rn '2s/^.*inet.(.*)net.*/\1/p'
10.1.0.3
# sed -r 's#(.*)#\1#g'		\1 是配合括号()使用的,引用的是括号里匹配的内容(后项引用前项)
[ Nginx ~] #ip a show ens160 | sed -rn '3s/^.*inet.(.*)\/.*/\1/p'
10.1.0.3
#2.关闭SELINUX
sed -i 's/^SELINUX=.*/SELINUX=Permissive/' /etc/selinux/config

#3.删除配置文件空行和注释
sed -i '/^#/d;/^$/d' /etc/nginx/nginx.conf

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值