Linux三剑客——sed文本编辑命令

sed命令

sed [选项] [sed内置命令字符] [输入文件]

注意:如果不加-i参数,那么所有的内容仅作用于内存,而非磁盘,
也就是不加-i不会保存文件的意思,sed中输出的内容是正确的,但
是使用cat输出文件就会发现文件未改变。
不加-i直接结束会有默认输出,输出内容是sed命令执行结束之后的
结果,加上-i则没有输出,直接保存文件。
在这篇文章中没有十分细致的区分这些内容,请记得区分。

👾 选项

参数说明备注
-e以选项中指定的script来处理输入的文本文件<script>或--expression=<script>
-i保存文件,将修改的内容写入磁盘不加-i参数的话修改的是内存中的数据
-f以选项中指定的script文件来处理输入的文本文件<script文件>或--file=<script文件>
-h或–help 显示帮助
-n或–quiet或–silent 仅显示script处理后的结果
-V或–version 显示版本信息

👾 动作说明

注意-i-a都是向文本中添加内容,但是不同的是-i是在前面追加,-a是在后面追加,如sed '2a Hello World'就是在第二行后面插入一句Hello World,Hello World在第三行,但是如果将a改成i,就变成了在第二行前面插入一行Hello World,Hello World在第二行,原本的第二行变为第三行。

动作说明备注
i插入(在前面插入), i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);insert
a追加(在后面追加), a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~append
c取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d删除,因为是删除啊,所以 d 后面通常不接任何东东;delete
p打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~print
s/被替换内容(旧)/替换内容(新)/g取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正则表达式!例如 1,20s/old/new/g 就是啦!还可以写成s###gs@@@g符号没关系,g代表全局

👾 匹配范围

范围解释
空地址全文处理
单地址指定文件某一行
/pattern/被模式匹配到的每一行
范围区间10,20 十到二十行,10,+5第十行向下五行,/pattern1/,/pattern2/
步长1~2,表示1、3、5、7、9行,2~2两个步长,表示2、4、6、8、10、偶数行

🌰 举些栗子

👾 输出内容 | p
sed '2,3p' luffycity.txt -n #「不默认输出」 sed,第二行与第三行,`p`表示print输出,-n不显示默认输出,只显示操作的内容
👾 查找内容 | /x/p
sed '/linux/p' luffycity.txt -n # 「不默认输出」查找有`linux`的行
👾 删除内容 | d
sed '/linux/d' luffycity.txt # 删除有`linux`的行
> sed '/linux/d' luffycity.txt -i
> cat luffycity.txt 
# My name is chaoge.
# I like play computer game.
# My qq is 12345678.
# My website is http://pythonav.cn.
sed '3,$d' luffycity.txt -i # 「保存文件」删除第三行到结尾行
👾 插入/追加内容 | a
sed '2a I love u' jimx.txt # 在第二行末尾插入一行
sed '4i I love m' jimx.txt # 在第四行前面一行插入一行
sed "2a I like Girl.\nPretty Girl is better." jimx.txt # 用换行符插入两行
> sed 'a ----------------' jimx.txt
# My name is jim.
# ----------------
# I learn linux.
# ----------------
# I like Girl.
# ----------------
# Pretty Girl is better.
# ----------------
# My favourite system is Kali
# ----------------
# My qq is 12345678.
# ----------------
# My CSDN is https://blog.csdn.net/Hsk_03.
# ----------------


如果要了解正则表达式可以查看:「CSDN」| Linux三剑客——grep命令与正则表达式






📜 参考内容

「Bilibili」Linux三剑客超全超详情教程(grep、sed、awk入门到精通有这一套足够了)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值