sed命令详解及应用

sed

sed命令详解及应用

sed是一种流编辑器,一次处理一行内容,把当前处理的内容存放在一个叫做“模式空间”的缓冲区中。能够进行数据的替换、删除、新增等。

语法结构:sed [option] script [file]

常用选项:

-n:禁止输出模式空间中的内容

-r:支持扩展正则表达式

-e:指定多脚本运行(-e script1 -e script2…)

-f /path/to/scripts:从指定的脚本文件中读取脚本并运行

-i:直接修改文件(即改即生效)

地址定界:

#:#表示数字,代表特定行

#1,#2:表示从#1行到#2行

/pattern1/,/pattern2/:表示从第一个匹配模式到第二个匹配模式中间的所有行

$:表示最后一行

/string/:表示被string匹配的所有的行

#,/pattern/:表示从第#行开始到被pattern匹配的行 中间所有的行

1~2:表示所有的奇数行

2~2:表示所有的偶数行

sed的编辑命令:

d:删除模式空间中的行

=:为模式空间中的行加上行号

a \text1 \text2 …:在匹配文本所在行的后面追加内容

i \text1 \text2…:在匹配文本所在行前面加内容

c \text:用text文本替代模式匹配到内容所在的整行内容

p:打印模式匹配的行

s/sting1/string2/:用string来替换string1

g:全局替换

i:不区分大小写

w /path/to/somefile:将匹配到的内容写入文件

r /path/to/somefile:在文件的指定内容插入另一个文件的所有内容

 

应用示例:

  • 删除/tmp/grub2.cfg文件中所有的行的行首的空白字符

sed ‘s/^[[:space:]]\+//g’ /tmp/grub2.cfg

  • 删除/tmp/grub2.cfg中所有以#开头,且后跟至少跟了一个空白字符的行的行首的#和空白字符

sed ‘s/^#[[:space:]]\+//g’ /tmp/grub2.cfg

  • 将/tmp/grub2.cfg文件中的奇数行另存为/tmp/grub3.cf

sed ‘1~2w /tmp/grub3.cfg’ /tmp/grub2.cfg

  • echo一个文件路径给sed命令,取出其基名和取出其路径名

echo “/etc/sysconfig/network-scripts/ifcfg-em1” | sed ‘s@^.*/\([^/]\+\)/\?$@\1@’

echo “/etc/sysconfig/network-scripts/ifcfg-em1” | sed ‘s@[^/]\+/\?$@@’

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92403

(7)
~~
上一篇 2018-03-13 19:51
下一篇 2018-03-14 14:46

相关推荐

  • 马哥linux运维26期开班感悟

         今天的收获,有以下几点      1.自己的公众演说能力很弱,要多多练习,给自己更多的机会。     2.自己想提升自己的心很强,但是自己却不知道该怎么做?     3.即便学完了也只是一个开始,希望自己有一颗归零的心态。

    Linux干货 2017-07-10
  • shell之变量总结

    1 什么是shell变量 按照定义来说,变量是存储设备中的一些可读写的存储单元.变量可以定制用户本身的工作环境。使用变量可以保存有用信息,使系统获知用户相关设置。变量也用 于保存暂时信息。例如:一变量为EDITOR,系统中有许多编辑工具,但哪一个适用于系统呢?将此编辑器名称赋给EDITOR,这样,在使用cron或其 他需要编辑器的应用时,这就是你将一直使用的…

    Linux干货 2016-08-15
  • Linux基础之正则表达式,用户、组管理

    Linux基础—正则表达式 正则表达式简单来说就是一种行字符串处理的方式,通过一些特殊符号的辅助,可达到搜索、删除、替换等某些特定字符串的处理方式 通配符(Globbing) 通配符与元字符类似,通配符主要用于文件名的匹配,而元字符则主要用在字符串的匹配上; 下面介绍几种常用的通配符: * 表示匹配任意位数的任意字符 ? 表示…

    Linux干货 2016-10-03
  • 十七周

    1、搭建一套LVS-DR模型的高性能集群,并实现以下功能:    (1)、wordpress程序通过nfs共享给各个realserver;    (2)、后端realserver中的nginx和php分离 Centos7系统 地址 安装程序 LVS主机 VIP:192.168.1.110 ipvsadm DIP:192…

    2017-08-17
  • find命令使用练习

    1、  查找/var目录下属主为root,且属组为mail的所有文件   2、  查找/var目录下不属于root、lp、gdm的所有文件   3、  查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件   4、  查找当前系统上没有属主或属组,且最…

    Linux干货 2016-08-15