sed编辑命令

p 打印匹配行
= 打印文件行号
a 在定位行之后追加文本
i 在定位行之前插入文本
d 删除定位行
c 用新文本替换定位文本
s 使用替换模式替换相应模式
r 从另一个文件读取文本
w 将文本写入到一个文件
y 变换字符,类似替换
q 第一个模式匹配完成后退出
l 显示与八进制ASCII码等价的控制字符
{} 在定位行执行的命令组
n 读取下一个输入行,用下一个命令处理新的行
h 将模式缓冲区的文本复制到保持缓冲区
H 将模式缓冲区的文本追加到保持缓冲区
x 互换模式缓冲区和保持缓冲区的内容
g 将保持缓冲区的内容复制到模式缓冲区
G 将保持缓冲区你内容追加到模式缓冲区
g 替换文本全部
p 与n选项结合只打印替换行
w 文件名 输出定向到一个文件

Eg:

  • -n打印文件第一行(不加选项,还会打印全部内容)

    1
    2
    sed -n '1p' input
    sed -n '1,3p' input
  • ’=‘只打印对应内容的行号

    1
    sed -n '/string/=' input
  • -e 打印查询字符并显示行号

    1
    sed -e '/string/=' -e '/string/p' input

    等价于sed ‘/string/{=;p}’ input`

  • a在指定内容后追加

    1
    sed '/string/aappend a new line.' input
  • 在文件最后一行追加

    1
    大专栏  Sed 实记 · laoless's Blog"code">
    sed '$'astring input
  • 替换文本

    1
    2
    3
    sed -n '/string/cint' input
    sed -n 's/string/int/2g' input
    sed -n '/string/s#string#int#g' #替换所有匹配到的字符串

    错误用法(-ni选项不能连用)

    1
    2
    sed -ni '/string/cint/p' php.ini
    sed -ni 's/string/int/p' php.ini
  • 删除最后一行和最后一行

    1
    sed -e '$'d  -e '1'd input
  • 只打印替换行

    1
    sed -n 's/string/int/p' input
  • 分别替换第n次匹配

    1
    sed -n 's/string/np' input
  • 显示控制字符(ASCII)

    1
    sed -n '1,$'l input
  • 处理匹配行的下一行

    1
    sed '/string/{n;s/cf/lol/;} input
  • 在指定字符串后/前添加内容

    1
    2
    sed -i 's/index.html/& index.php /' httpd.conf
    sed -i 's/index.html/index.php &/' httpd.conf

    &就代表着指定的字符串位置

Sed 实记 · laoless's Blog的更多相关文章

  1. springboot 完整企业项目搭建实记

    昨天搭建ssm框架时突然想到可以搭建springboot来完美解决配置复杂的问题,今天学习了一下springboot的搭建,在此记录一下搭建的过程和踩过的坑 这里给自己定一个该框架搭建完成的目标,如下 ...

  2. awk处理实记

    经grep日志后得到的数据格式如下: } . [debug][-- ::] SendDataStyled:{ , "innings" : "6189269620_0007 ...

  3. 实记JLink刷固件方法

    最近J-Link调试程序,不知何故,USB报无法连接,试了别的电脑也是这样.文件存于“百度网盘/05.组装维修/4.单片机/1.JLink-ARM仿真器”下.所有的操作基于WIN7 32位系统. 1. ...

  4. tomcat 优化实记

    好记性不如烂笔头,以下是 tomcat 无脑优化 1.内存设置(VM参数调优)(1). Windows环境下,是tomcat解压版(执行startup.bat启动tomcat)  解决办法:修改“%T ...

  5. asp.net mvc项目实记-开启伪静态-Bundle压缩css,js

    百度这些东西,还是会浪费了一些不必要的时间,记录记录以备后续 一.开启伪静态 如果不在web.config中配置管道开关则伪静态无效 首先在RouteConfig.cs中中注册路由 routes.Ma ...

  6. SpringBoot + SpringCloud学习踩坑实记

     踩的坑: 1).springcloud框架中,依赖一直报错,很可能是没有添加springcloud的依赖,或者是依赖的版本号过低.并且springboot也有一个父依赖. 2.springcloud ...

  7. 实记处理mongodb的NUMA问题

    一次在启动mongodb的过程中,出现过NUMA这个问题, mongodb日志显示如下: WARNING: You are running on a NUMA machine. We suggest ...

  8. EJB组件开发实记(1)

    安装JBoss或者Wildfly jdk1.4以上. Eclipes安装插件 JBoss Tools: eclipes Jee photon 在eclipes 内部点击 >>Windows ...

  9. Fedora26安装Mysql实记(包含yum换源教程)

    课程实验中有一项是安装Hive,这个过程中需要安装Mysql. 在安装Mysql耗费了好多时间,总是报错数据仓库同步失败什么的. 输入yum install mysql 就提示错误,连接不上数据源.该 ...

随机推荐

  1. CSS知识点小结

    在网页排版布局中比如文章列表标题排版,无论多少文字均不希望换行显示,需要强制在一行显示完内容.这就可以nobr标签来实现. 一.nobr语法 <nobr>内容</nobr> 不 ...

  2. 吴裕雄--天生自然 PYTHON3开发学习:集合

    fruits = {"apple", "banana", "cherry"} fruits.add("orange") ...

  3. Spring Boot 默认的指标数据从哪来的?

    了解有关 Spring Boot 默认指标及其来源的更多信息. 您是否注意到 Spring Boot 和 Micrometer 为您的应用生成的所有默认指标?如果没有 - 您可以将 actuator  ...

  4. Opencv笔记(十六)——认识轮廓

    什么是轮廓? 轮廓可以简单认为成连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度.轮廓在形状分析和物体的检测和识别中很有用.谈起轮廓不免想到边缘,它们确实很像.简单的说,轮廓是连续的,边缘并 ...

  5. Mac环境下 Python3安装及配置

    1.mac 环境下安装 python3 .查看 mac 自带系统版本 #查看系统自带的python open /System/Library/Frameworks/Python.framework/V ...

  6. 一条sql关联删除多张表数据

    现有6张表存在关联关系,要删除主表则其他5张表关联数据也要一块删掉(单条sql多id批量删除) delete t1,t2,t3,t4,t5,t6 FROM rmd_v AS t1 LEFT JOIN ...

  7. springCloud负载均衡Ribbon和Feign的区别

    1.什么是负载均衡: 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据[均匀]分摊到多个操作单元上执行,负载均衡的关键在于[均匀]. 2.常见的负 ...

  8. rest framework-分页-长期维护

    ###############  分页组件   ############### # 分页组件 # # django也有分页,rest framework也有分页,但是没有页面这个概念了, # 这个分页 ...

  9. maven中指定build一个project中几个特定的子modules

    问题由来: 一个项目可能会有多个子module,在特定情况下可能只需要build其中几个module. 例如我的项目的目录结构如下 myproject |------------module_one ...

  10. django框架进阶-ModelForm组件-长期维护

    ############################################################ """ 通常在Django项目中,我们编写的大部 ...