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
下一篇 2018-03-14

相关推荐

  • 高级文件系统管理之mdadm与lvm的创建

    ※配置配额系统 磁盘配额就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间,比如一些网盘就是基于这个功能来做的,分配给用户固定的空间,花钱买,可以将空间设置的更大。 功能作用 磁盘配额可以限制指定账户能够使用的磁盘空间,这样可以避免因某个用户的过度的使用磁盘空间造成其它用户无法运行或工作甚至影响系统运行。这个功能不止…

    Linux干货 2016-08-27
  • 8月9日sed命令

    sed命令及vim基础使用命令 处理文本的工具sed stream editor,行编辑器    sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有…

    Linux干货 2016-08-11
  • 如何查看当前系统版本的版本号

    作为一名系统管理员,了解系统版本号是必然。因为不同大版本之间的命令和启动流程等之间有很大的差异;     一、在/etc/system-release 里面查看         ~]#ls -l /etc/system-release &n…

    Linux干货 2016-07-29
  • raid5创建

    创建分区并改类型 创建raid5   创建把文件系统 生成配置文件    

    2017-12-17
  • 2、文件通配符,文件创建、复制等操作

    1:bash特性之状态返回值 变量$?,用于保存命令执行成功与否的状态,0表示成功,1-255表示失败,以命令ls为例: 执行成功 [root@localhost ~]# ls /usr/     bin  etc  games &nbsp…

    Linux干货 2016-09-19
  • N26 – 第二周作业

    1、文件管理类命令和常用使用方法 2、bash命令执行后返回值,和目录展开:     命令执行返回值,存储在“$?”这个特殊变量内。可以使用echo显示或在shell脚本中引用。其中0表示正常执行完成,1-255表示不同的错误类型。     目录展开的特殊符号:  &n…

    Linux干货 2016-12-30