【参考文章】:shell中sed命令的用法

【参考文章】:SED 简明教程

1. 简述

  sed是一种流编辑器,它是文本处理中非常重要的工具,能够完美的配合正则表达式使用。

  执行命令时,一次处理一行内容,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。

  sed命令处理时只会改变缓冲区中文本的副本,如果想要直接编辑原文件,可以使用 -i  选项或者将结果重定向到新的文件中。

2. 用法

  sed  [选项]  动作 [文件路径]

  -n:只输出修改的行,默认情况下将操作后的内容全部输出到控制台;

  -i :直接修改读取的内容并写入源文件,并且不会输出到控制台;

  -r :支持扩展的正则表达式(默认支持基础的正则表达式);

  -f :执行指定脚本文件中的命令;

3. 子命令

3.1 s 替换

命令 完整示例 说明
s/old/new/ sed 's/old/new/' 1.txt 删除1.txt中每行的第一个old都替换成new
s/old/new/2 sed 's/old/new/' 1.txt 删除1.txt中每行的第二个old都替换成new
s/old/new/g sed 's/old/new/g' 1.txt 删除1.txt中每行的每一个old都替换成new
s/old// sed 's/old//' 1.txt 删除1.txt中每行的第一个old都替换成空也就是把old删除
s/old/&s/ sed 's/old/&s/' 1.txt 删除1.txt中每行的第一个old都替换成olds &代表前面查找的字符串
4,7s/^/#/ sed '4,7s/^/#/' 1.txt 删除1.txt中4-7行开头加上# 也就是批量添加注释
4,7s/^#an/an/ sed '4,7s/^#an/an/' 1.txt 删除1.txt中4-7行以#an开头的行去掉#

3.2  i a c 插入

命令 完整示例 说明
行号 i sed '2i123' 1.txt 在1.txt的第二行前面插入123
正则 i sed '/^[0-9]/i123' 1.txt 在1.txt中所有数字开头的行前面插入123
a 在行后插入 命令格式和i相同
c 替换该行 命令格式和i相同

3.3 d 删除

命令 完整示例 说明
2d sed '2d' 1.txt 删除1.txt的第二行
2,5d sed '2,5d' 1.txt 删除1.txt的第二行到第五行
2,+5d sed '2,+5d' 1.txt 删除1.txt的第二行和第二行以后的5行
$d sed '$d' 1.txt 删除1.txt的最后一行行
/正则/ sed '/^[0-9]/d' 1.txt 删除以数字开始的行
sed '/^[0-9]/!d' 1.txt 删除不是以数字开头的行
^$ sed '^$' 1.txt 删除1.txt的空行

3.4 p 输出

命令 完整示例 说明
p sed -n 'p' 1.txt 输出1.txt的所有行
2p sed -n '2p' 1.txt 输出1.txt的第二行
2,5p sed -n '2,5p' 1.txt 输出1.txt的第二行到第五行
2,+5p sed -n '2,+5p' 1.txt 输出1.txt的第二行和第二行以后的5行
1~2p sed -n '1~2p' 1.txt 输出第一行,每隔两行输出一行,也就是输出奇数行
2~2p sed -n '1~2p' 1.txt 输出第二行,每隔两行输出一行,也就是输出偶数数行
/正则/p sed -n '/^[0-9]/p' 1.txt 输出1.txt以数字开头的行
$= sed -n '$=' 1.txt 输出1.txt的行数

Linux:sed的更多相关文章

  1. linux:sed高级命令之n、N(转)

    sed的语法格式: sed [option] {sed-command} {input-file} sed在正常情况下,将处理的行读入模式空间(pattern space),脚本中的“sed-comm ...

  2. Linux常用命令:sed

    本文记录的是自己在学习<Linux私房菜>中正则表达式的笔记. 关于行尾符$ 如果文件本身没有内容,比如使用touch新建的文件,那么$将会没有意义.例如下面操作: 先使用touch新建了 ...

  3. Unix/Linux命令:SED

    在Unix/Linux系统中,sed命令采用逐行处理的方式对文件进行查找.删除.替换.添加.插入等操作. 语法:sed [OPTION]... {script-only-if-no-other-scr ...

  4. linux学习:sed与awk与tr用法整理

    流编辑器:sed 语法:sed [-hnV][-e<script>][-f<script文件>][文本文件] 参数: -e<script>或--expression ...

  5. Linux(8):linux三剑客sed和awk & Shell 编程(1)

    linux 三剑客 之 sed # sed 是什么? # sed : 字符流编辑器 Stream Editor: sed 擅长 替换.取行等 # sed 的功能与版本: 处理纯文本文件.日志.配置文件 ...

  6. Linux安全基础:sed命令的使用

    sed 是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作. Sed本质上是一个编辑器,但是它是非交互式的,这点与VIM不同:同时 ...

  7. linux命令学习之:sed

    sed:Stream Editor文本流编辑,sed是一个“非交互式的”面向字符流的编辑器.能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上 ...

  8. Linux学习笔记:sed删除、插入数据

    一.sed删除文件第一行 sed -i '1d' file.txt -- 删除第一行 sed -i 'nd' file.txt -- 删除第n行 sed -i '$d' file.txt -- 删除最 ...

  9. Linux命令:sed

    简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的 ...

随机推荐

  1. datagrid行内编辑

    编辑属性 :editor: { type: 'text'} $('#listShow').datagrid({ height : 478, pagesize : 20, pageList : [20, ...

  2. restTemplate源码解析(二)restTemplate的核心逻辑

    所有文章 https://www.cnblogs.com/lay2017/p/11740855.html 正文 上一篇文章中,我们构造了一个RestTemplate的Bean实例对象.本文将主要了解一 ...

  3. C# List<> Find相关接口学习

    参考 http://blog.csdn.net/daigualu/article/details/54315564 示例: List<int> test = new List<int ...

  4. 定位之z-index

    我们已经知道固定定位(fixed)和绝对定位(absolute)可以让盒子浮起来 相对定位(relactive)虽然不能让盒子浮起来,但也是可以让图层浮起来 那么既然大家都可以浮起来,就会存在一个问题 ...

  5. 阮一峰:jQuery官方基础教程笔记

    jQuery是目前使用最广泛的javascript函数库. 据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库.微软公司甚至把jQuery作为他们的官方库. 对于网页开发者来 ...

  6. 2 webpack 4 加vue搭建开发环境最终配置

    1 package.json { "name": "c", "version": "1.0.0", "desc ...

  7. MySQL全同步复制基于GR集群架构实现(Centos7)

    目录 一. 理论概述 概述 二. 部署 向组加入新节点 测试 三.总结 一. 理论概述 概述 本案例操作的是针对于MySQL的复制类型中的全同步复制,对几种复制类型简单总结下: 异步复制:MySQL默 ...

  8. 第一课 IP通信

       我们的专业课:<IP通信>开课了.    在第一节课,我们初步了解了关于通信的知识,涨了知识,下面我就说一下第一节课所学所感.    在学习这门课的时候,需要我们认真预习,认真听课, ...

  9. opengl 4.5 中文api 链接

    https://www.cnblogs.com/wiki3d/p/opengl_a.html

  10. Struts2 Action类的创建以及参数传递以及接收

    一.Struts中Action得创建方式 1,直接创建一个简单的Action类 添加Struts.xml,配置转发方法返回转发的页面. 2,实现一个Action类 Strust.xml配置对应的Url ...