一. 命令sed简介

  利用命令sed能够同时处理多个文件多行的内容,可以不对原文件改动,仅把匹配的内容显示在屏幕上,也可以对原文件进行改动,但是不会在屏幕上返回结果,若想查看改动后的文件,可以使用命令cat等。

二. 语法格式

  1. sed的命令格式:sed [options] command file

  2. sed的脚本格式:sed [options] -f script file

  

三. options选项

  1. -n,只打印模式匹配的行

  2. -f,将sed的动作写在一个文件内

  3. -i,直接修改文件内容

四. command命令

  1. p,打印匹配行(一般与选项-n合用)

  2. =,显示文件行号

  3. a\,在定位行号后,添加新文本信息

  4. i\,在定位行号前,插入新文本信息

  5. d,删除定位行

  6. c\,用新文本替换定位文本

  7. w filename,写文本到一个文件,类似输出重定向

  8. r filename,从另一个文件中读文本,类似输入重定向

  9. s,使用替换模式替换相应模式

  10. q,第一个模式匹配完成后立即退出

  

五. 实例

  1. 仅打印出文件test.txt的第2行,则有

    

    注意,若没有选项“-n”,则会显示整个文件,且第2行会显示两遍。所以,如果仅仅想要显示第2行,则要添加选项“-n”。

  2. 若要显示文件test.txt的第2行到第5行,则有

    

  3. 显示出带有字符串“grep”的行,则有

    

  4. 显示出从匹配字符串“is”到匹配字符串“abc”之间的行,则有

    

    注意,这里匹配字符串时,是按照第一次出现的行来定的。

    当第二个字符串不存在时,则显示从第一个字符串到最后

    

  5. 显示出文件test.txt中第1行到第4行的内容,同时显示出行号,则有

    

    注意,当使用命令sed中不同的编辑命令时,用{},且不同命令之间用“;”隔开!

  6. 显示除了第1行到第4行外的其它内容,则用“!”取反

    

  7. 打印出非空行,则有

    

  8. 删除以“this”开头的行和空行,则有

    

    注意,命令sed支持对单个文件实现不同的操作,每个操作使用选项“-e”

  9.  在匹配字符串“grep”的行首添加字符串“first”,则有

    

  10. 将文件test.txt中的所有字符串“grep”后添加字符串“ddd”,则有

    

  11. 在匹配字符串“grep”的行后添加一行“Hello World”,则有

    

  12. 若在匹配字符串“grep”的行后添加两行“Hello”、“World”,则使用转义符\n

    

  13. 在第1行到第3行的行首添加“#”,则有

    

  14. 将文件test.txt中的字符串“grep”替换为字符串“ddd”,则有

    

    注意,可以发现,此处替换的仅仅是定位行的第一个匹配的字符串“grep”,且是将整个文件都显示在屏幕中的,而不是仅显示匹配行。

  15. 若将定位行中所有的匹配字符串“grep”都替换为字符串“ddd”,则有

    

  16. 若要将所做改动直接写入文件test.txt中,则使用选项“-i”

    例如,将文件的行首添加字符串“Start ”,则有

    

Linux日常之命令sed的更多相关文章

  1. 一个不会coding的girl Linux日常之命令awk

    Linux日常之命令awk 参考:http://www.zsythink.net/archives/tag/awk/ 一. 命令awk简介 1. awk是一种编程语言,用于对文本和数据进行处理的 2. ...

  2. 笔记02 linux的一些命令sed

    #!/bin/bash # dataformat=`date +%Y-%m-%d-%H-%M` #进行文件件cp并重命名 nginx_home=/opt/modules/nginx-1.12/ cp ...

  3. 10 程序员必备:Linux日常维护命令

    一.服务器硬件配置 1.查看硬盘及分区情况 # fdisk -l 2.查看分区空间使用情况 可以查看各分区大小.已使用.可用.已使用百分比.挂载情况 1)默认单位为K # df 2)可读性更好的显示, ...

  4. Linux日常维护命令

    对于程序员来说,掌握一些基本的Linux命令是必不可少的,即使现在用不到,在不久的将来也应该会用到.由于Linux有很多命令,每个命令基本可以用一篇文章介绍,所以本文仅总结一些常用命令的常用用法,如有 ...

  5. Linux日常之命令awk

    参考:http://www.zsythink.net/archives/tag/awk/ 一. 命令awk简介 1. awk是一种编程语言,用于对文本和数据进行处理的 2. 具有强大的文本格式化能力 ...

  6. Linux日常使用命令

    pwd  当前目录的路径ls -a 显示隐藏文件ls -l h*  显示所有以h开头的文件ls -d  b*  显示所有以b开头的文件夹ls -l  *.log  所有后缀是.log 的文件dir 显 ...

  7. Linux 日常维护命令

    1   防火墙配置 1)重启后生效  开启: chkconfig iptables on  关闭: chkconfig iptables off 或者 /sbin/chkconfig --level  ...

  8. linux日常常用命令分析

    日志处理: 测试网络路由: xargs使用方法: tcpdump命令分析: dd 写入磁盘测试 cpu个数: 查看网卡流量 查看端口联通情况,临时加端口 ntpdate同步: 可以取出变动的密码: 导 ...

  9. Linux日常之命令sort

    素材借鉴:https://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html 命令sort 是Linux中常用的排序命令,属于管道命令. 常 ...

随机推荐

  1. 六、Java中一个key存多个value的MultiValueMap,一键多值

    一.MultiValueMap介绍,与map,HashMap相差不多 添加一个Key对应一个Value的:void add(K, V); 添加一个Key对应多个Value的:void add(K, L ...

  2. emqtt emq 的主题访问控制 acl.conf

    访问控制(ACL) EMQ 消息服务器通过 ACL(Access Control List) 实现 MQTT 客户端访问控制. ACL 访问控制规则定义: 允许(Allow)|拒绝(Deny) 谁(W ...

  3. 阶段3 2.Spring_05.基于XML的IOC的案例1_2 基于XML的IOC的案例-编写spring的Ioc配置

    首先配置service对象,配置完Service对象就是注入dao对象. 但是现在没有dao对象,那就需要先配置dao对象.dao配置好以后.上线dao的注入就可以通过refs对象来注入这个dao了 ...

  4. 三十九:数据库之SQLAlchemy.relationship方法中的cascade参数

    在SQLAlchemy中,只要将一条数据添加到session中,其它和此条数据相关联的数据都会一起存到数据库中,这是因为在relationship中有一个关键字参数:cascade,默认选项为save ...

  5. sorted&filter&map

    python里列表的sort和内置的sorted函数,都可以进行排序,列表的sort方法是在原有的列表上进行排序,sorted是会返回一个新的对象 persons = [ {'name': '小明', ...

  6. 微信小程序<一>

    下面是我对自己微信小程序学习的画的一个思维导图: 以后就一步一步的完善思维导图吧...到最后,应该是相当的庞大了呀...嘿嘿嘿! 目录结构总结记录: 包括入口文件app.js   app.json&l ...

  7. Spring Web Flow 2.0 入门

    转载: https://www.ibm.com/developerworks/cn/education/java/j-spring-webflow/index.html 开始之前 关于本教程 本教程通 ...

  8. 重叠IO 模型

    1. 重叠模型的优点 2. 重叠模型的基本原理 3. 关于重叠模型的基础知识 4. 重叠模型的实现步骤 5. 多客户端情况的注意事项 一.重叠模型的优点   1.可以运行在支持Winsock2的所有W ...

  9. 【HANA系列】SAP HANA跟我学HANA系列之创建分析视图一

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA跟我学HANA系 ...

  10. Python学习之表的介绍

    9.4 表的介绍 存储引擎 数据的存储方式就是存储引擎,引擎不同,数据的存储方式就不同 MySQL中比较重要的引擎: InnoDB:mysql5.6以上,默认的存储方式 ​ 支持 transactio ...