一. 命令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. SAP MaxDB Backup and Restore

    Back up the data and redo log entries from the data and log areas of your database to data carriers ...

  2. OpenCV学习笔记(8)——图像平滑

    使用不同的低筒滤波器对图像进行模糊 使用自定义的率弄起对图像进行卷积(2D卷积) 2D卷积 与信号一样,我们也可以对2D图像实施低通滤波,高通滤波等.LPF帮助我们去除噪声,模糊图像.而HPF帮助我们 ...

  3. 浏览器端-W3School-HTML:HTML DOM Base 对象

    ylbtech-浏览器端-W3School-HTML:HTML DOM Base 对象 1.返回顶部 1. HTML DOM Base 对象 Base 对象 Base 对象代表 HTML 的 base ...

  4. 用xmmp+openfire+smack搭建简易IM实现

    功能实现:注册,登录,单聊表情,文本,图片,语音的发送接收,添加好友,删除好友,查找好友,修改密码,消息提醒设置,获取离线消息等功能 1.前期准备 1.下载opnefire软件:https://www ...

  5. python接口测试之mock(一)

    在现在的软件开发过程中,特别是app的部分,需要的很多数据以及内容,都是来自server端的API,但是不能保证在客户端开发的时候,api在 server端已经开发完成,专门等着前端来调用,理想的情况 ...

  6. Struts2-Ajax整合之Jquery版本

    <纯JavaScript版本  http://www.cnblogs.com/hzb462606/p/8934787.html  > 大部门跟JavaScript版本一致,就是<sc ...

  7. jquery的then方法

    绿地项目中的代码: $.ajax({ url: `https://openapi.italent.cn/OAuth/Token`, type: 'post', data: `tenant_id=${t ...

  8. 域名查询是否注册的demo

    import json import multiprocessing import threading import requests import xmltodict # 万网查询 def chec ...

  9. 如何利用Nginx的缓冲、缓存优化提升性能

    使用缓冲释放后端服务器 反向代理的一个问题是代理大量用户时会增加服务器进程的性能冲击影响.在大多数情况下,可以很大程度上能通过利用Nginx的缓冲和缓存功能减轻. 当代理到另一台服务器,两个不同的连接 ...

  10. 慕课网_文件传输基础——Java IO流

    第1章 文件的编码 1-1 文件的编码 (15:07) 第2章 File 类的使用 2-1 File 类常用 API 介绍 (10:50) import java.io.File; import ja ...