sed常用用法的小结

本文详细介绍了sed命令的常用选项、动作以及实例,包括如何增加行、删除行、打印行、替换文本等内容。强调了在确保命令无误后使用选项直接修改文本的重要性,并给出了修改软连接文件和批量替换文本的操作方法。
摘要由CSDN通过智能技术生成

sed(stream editor)命令是一个面向字符流的非交互式编辑器,是按行来处理文本内容的;它还能配合管线来使用,非常高效

我之所以想学会使用这个命令,是因为:当同一个长文本每次执行只需要修改一个小地方时,使用sed能直接对文本操刀,避免使用复杂的python文本生成来覆盖原文本,配合bash脚本使用简直美滋滋

需要注意的另一个点是:可以先使用sed确保命令本身没问题,再使用-i选项直接修改文本(不使用-i选项,执行sed命令后原文本文件不会被修改)

sed [选项] {动作或脚本命令, 如果没有其他脚本的话} 文本文件名
1. 常用选项
  • -n: 安静模式,只打印被修改了的行
  • -e <script>: 使用选项中指定的script来处理输入的文本文件
  • -f <script文件>: 使用选项中指定的script文件来处理输入的文本文件
  • -r: 在动作中使用扩展的正则表达式(默认是基础正则表达式,比如使用限定符会无效等)
  • -i: 直接对文本文件操刀,而不是打印结果到终端
  • --follow-symlinks: 保持软连接文件的连接,硬连接没招儿
  • --version: 打印版本信息
2. 常用动作
  • p: 列出选中的行
  • a: 在指定行后面追加文本
  • i: 在指定行前面插入文本
  • d: 删除指定的行
  • c: 用新文本替换掉选中的行
  • s/正则表达式或指定文本/新文本/: 用新文本替换匹配到的内容,最后加g表示全部替换,否则只替换每一行的第一个匹配内容。而实际上/在这里只是分隔符,s后面紧接着的就是分隔符,可以用别的符号代替,例如#@等(亲测)。

一般脚本命令前面会加指定行区间,比如加2表示只对第2行进行操作,2,$表示对第2行至最后一行进行操作等

3. 实例

原文本内容:

ubuntu@ubuntu:~$ cat test
hello linux!
i have 10 apples.
i have no idea for this file.
233333
增加行
ubuntu@ubuntu:~$ sed '3a\add newline after 3rd line.' test
hello linux!
i have 10 apples.
i have no idea for this file.
add newline after 3rd line.
233333

ubuntu@ubuntu:~$ sed '3i\add newline before 3rd line.' test 
hello linux!
i have 10 apples.
add newline before 3r
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值