Linux三剑客sed之增删改查

网友投稿 308 2022-11-01


Linux三剑客sed之增删改查

文章目录

​​一、sed查找​​

​​指定行号查找​​​​指定行号范围查找​​​​过滤​​

​​二、sed删除​​

​​按行删除和指定范围删除​​​​删除指定内容​​

​​三、sed增加​​​​四、sed替换​​

一、sed查找

格式

功能

‘1p’ ‘2p’

指定行号查找

‘1,5p’

指定行号范围查找

/[xyz]/p

找出包含字符xyz中任何一个的行,两个斜线中间支持正则

/10/,/20/p

查找从10开始到20结束

指定行号查找

sed -n '3p' oldboy.txtsed '3p' oldboy.txtsed '$p' oldboy.txt # $表示最后一行

指定行号范围查找

sed -n '1,3p' oldboy.txtsed -n '4,$p' oldboy.txt # $表示最后一行

过滤

sed -n '/[45]/p' oldboy.txt # 找出包含字符4、5中任何一个的行sed -n '/[0-9]/p' oldboy.txt # 查找包含0-9的行

sed -nr '/[0-9]+/p' oldboy.txt # 查找包含0-9字符任意组合的行

sed默认不支持扩展正则,​​-r​​参数支持扩展正则

实际生产环境中,如果文件太大,我们一般不用vim/cat等命令查看,一般使用more/less/head/tail/grep/sed/awk等查看

查找11:02:13的日志

sed -n '/11:02:13/p'

查找从11:02:13开始,到11:02:14结束的日志

sed -n '/11:02:13/,/11:02:14/p'

查找从11:02:13开始,到11:02:140结束的日志,由于文件中没有11:02:140,故不会停止,直到文件末尾

sed -n '/11:02:13/,/11:02:140/p'

二、sed删除

格式

功能

‘1d’ ‘2d’

指定行号删除

‘1,5d’

指定行号范围删除

/[xyz]/d

删除包含字符xyz中任何一个的行,两个斜线中间支持正则

/10/,/20/d

删除从10开始到20结束

按行删除和指定范围删除

sed '3d' oldboy.txtsed '2,3d'

删除指定内容

sed '/lidao/d'

使用d和p两种方式,删除注释行以及空行

#!/usr/bin/python# -*- coding: UTF-8 -*-def fact(j): sum = 0 if j == 0: sum = 1 else: sum = j * fact(j - 1) # 乘法 return sum # 打印print (fact(5)) # 打印

sed -r '/^$|^\s*#/d' 1.py # 删除空行和注释行sed -nr '/^$|^\s*#/!p' 1.py # 空行和注释行不打印,!p表示不打印

三、sed增加

格式

功能

c

replace,替代这行内容

a

append,向指定的行或每一行后面追加内容

i

insert,向指定的行或每一行前面插入内容

实际上记一个a就可以

在指定行添加指定内容或进行替换

sed '3a 996,lidao996,UFO' oldboy.txt # 第3行后追加996,lidao996,UFOsed '3i 996,lidao996,UFO' oldboy.txt # 第3行前插入996,lidao996,UFOsed '3c 996,lidao996,UFO' oldboy.txt # 第3行替换为996,lidao996,UFO

向ssh_config最后一行追加以下配置:

UseDNS noGSSAPIAUTCATION noPermitRootLogin no

sed '$a UseDNS no\nGSSAPIAUTCATION no\nPermitRootLogin no'

四、sed替换

格式

功能

s#111#222#g

全局将111替换为222

s@111@222@g

全局将111替换为222

s/111/222/g

全局将111替换为222

sed 's#[0-9]##g'

#!/usr/bin/python# -*- coding: UTF-8 -*-def fact(j): sum = 0 if j == 0: sum = 1 else: sum = j * fact(j - 1) # 乘法 return sum # 打印print (fact(5)) # 打印

删除注释部分,只留下代码

sed -r 's@^$|^\s*#.*$|#.*$@@g' 1.py | egrep -v '^$'


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Linux三剑客sed介绍
下一篇:java注解的类型知识点总结
相关文章

 发表评论

暂时没有评论,来抢沙发吧~