详细的sed命令详解,请参考https://my.oschina.net/u/3908182/blog/1921761

sed命令常见用途

  1. 查找关键词做全局替换
  2. 查找某行的关键词做替换
  3. 查找关键字所在行,并且执行指定关键字的替换
  4. 在某行之后追加
  5. 查找关键字,并且在第二行追加
  6. 删除包含关键字的行
  7. 查看指定的行
  8. 在最后一行追加
  9. sed -e 参数,屏幕输出,一次更改多替换文本中多个值

1. 查找关键词做全局替换

sed -i 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/g' /etc/ssh/sshd_config

2. 查找/etc/crontab 第17行,并且把0,30替换为15,45

sed -i '17s/0,30/15,45/' /etc/crontab

3. 查找/etc/crontab 中的关键字script.sh,并且把15,45替换为0,30

sed -i '/script.sh/s/15,45/0,30/' /etc/crontab

4. 在第17行后添加新的 一行内容

sed -i '17a\0 * * * * root /root/test.sh' /etc/crontab

5. 在/etc/crontab中查找关键字script,并且该关键字的下一行追加一行新内容

sed -i '/^.*script.*$/a\30,45 * * * * root /root/check.sh' /etc/crontab

6.  在/etc/crontab中查找关键字check.sh,并且删除该行

sed -i '/check.sh/d' /etc/crontab

7. 显示第17到18行之间的内容

sed -n '17,18p' /etc/crontab

8. 在最后一行追加一行0 * * * * root /root/check.sh

sed -i '$a\0 * * * * root /root/check.sh' /etc/crontab

9. sed 命令处理换行符,例如替换或者删除

sed ':label;N;s/\n/:/;b label' filename
sed ':label;N;s/\n/:/;t label' filename

上面的两条命令可以实现将文件中的所有换行符替换为指定的字串,如命令中的冒号。命令的解释:
:label; 这是一个标签,用来实现跳转处理,名字可以随便取(label),后面的b label就是跳转指令
N; N是sed的一个处理命令,追加文本流中的下一行到模式空间进行合并处理,因此是换行符可见
s/\n/:/; s是sed的替换命令,将换行符替换为冒号
b label 或者 t label b / t 是sed的跳转命令,跳转到指定的标签处
标签跳转和N的追加命令实现了每一行的不间断放入模式处理空间,从而不会漏掉每一个换行符,而没有标签的话跳转的话,就只能每两行替换掉一个换行符,对比效果:

$  echo "a,b,c,d" |sed 's/,/\n/g'|sed ':x;N;s/\n/,/;b x'
a,b,c,d
$ echo "a,b,c,d" |sed 's/,/\n/g'|sed 'N;s/\n/,/'
a,b
c,d

10. sed -e参数,并不真正编辑源文件,只是屏幕输出

一条sed命令,删除/etc/passwd第三行到末尾的数据,并把bash替换为blueshell

nl /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/'
root:x:::root:/root:/bin/blueshell
daemon:x:::daemon:/usr/sbin:/bin/sh

e表示多点编辑,第一个编辑命令删除/etc/passwd第三行到末尾的数据,第二条命令搜索bash替换为blueshell。

如果只是处理一个东西,可以省略-e ,接多个就不能省略

Linux shell sed 命令详解的更多相关文章

  1. Linux shell tr 命令详解

    该随笔摘自 https://www.jb51.net/article/103892.htm Linux shell tr 命令详解 1. 用途 tr,translate的简写,主要用于压缩重复字符,删 ...

  2. 转 linux之sed命令详解

    http://jingyan.baidu.com/article/fec4bce2228f60f2618d8bb0.html sed  编辑裁剪文件命令 sed -i "s/\/db\/te ...

  3. 【转】【Linux】sed命令详解

    sed命令详解 sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令 ...

  4. linux下sed命令详解

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

  5. Linux之Sed命令详解(总结一些实用例子)

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

  6. Linux之sed命令详解

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

  7. Linux shell join命令详解

    Linux join命令 2012-02-09 17:49:00| 分类: SHELL | 标签:linux join 文件连接 |字号 订阅join命令 功能:“将两个文件里指定栏位同样的行连接起来 ...

  8. linux shell ansible 命令详解

    也可以参考ansible 模块介绍的其他文章:https://www.cnblogs.com/guxiaobei/p/8316903.html 安装ansible yum install epel-r ...

  9. linux shell seq命令详解

    seq: squeue  是一个序列的缩写,主要用来输出序列化的东西 seq常见命令参数 用法:seq [选项]... 尾数 或:seq [选项]... 首数 尾数 或:seq [选项]... 首数 ...

随机推荐

  1. [AtCoder Code Festival 2017 QualB D/At3575] 101 to 010 - dp

    [Atcoder Code Festival 2017 QualB/At3575] 101 to 010 有一个01序列,每次可以选出一个101,使其变成010,问最优策略下能操作几次? 考虑像 11 ...

  2. arm汇编笔记

    ARM汇编(非虫笔记) 1.ARM汇编的目的: 分析elf文件的需要. 2.原生程序生成过程. (1)预处理,编译器处理c代码中的预处理指令. gcc -E hello.c -o hello.i (2 ...

  3. BFS-八数码问题与状态图搜索

    在一个3*3的棋盘上放置编号为1~8的八个方块,每个占一格,另外还有一个空格.与空格相邻的数字方块可以移动到空格里.任务1:指定的初始棋局和目标棋局,计算出最少的移动步数:任务2:数出数码的移动序列. ...

  4. Java学习笔记(十二)面向对象---内部类

    内部类的访问规则 内部类可以直接访问外部类中的成员,包括私有成员. 因为内部类中持有了一个外部类的引用,格式为:外部类名.this 外部类要访问内部类,必须要建立内部对象. class Outer { ...

  5. DM642学习:CMD、GEL文件

    在建立ccs工程的时候,cmd文件和gel文件非常重要,如不能配置好会出现一些莫名其妙的问题. 1. CMD文件: 不同的DSP芯片内集成的存储器大小各异,但其配置方式是类似的.大家可通过查阅DSP芯 ...

  6. AD转化器分类及特点和选用

    1. AD转换器的分类 下面简要介绍常用的几种类型的基本原理及特点:积分型.逐次逼近型.并行比较型/串并行型.∑-Δ调制型.电容阵列逐次比较型及压频变换型. 1)积分型(如TLC7135)积分型AD工 ...

  7. C#中字节数组byte[]和字符串string类型的相互转换

    C#中字节数组byte[]和字符串string类型的相互转换: string转byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBy ...

  8. Mybatis学习笔记——输入参数parameterType、Mybatis调用存储过程

    输入参数:parameterType(两种取值符号) 1.类型为简单类型 区别:     (1) #{可以为任意值}         ${vaue}--->标识符只能是value     (2) ...

  9. html div四边阴影效果

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...

  10. 虚拟机linux系统网络连接配置问题总结

    1.虚拟机与CentOS的安装与配置参考本人博客:https://www.cnblogs.com/ClikeL/p/11743520.html 2.测试网络连接 ping www.baidu.com ...