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

相关推荐

  • shell脚本4——特殊循环和函数

    循环的特殊用法: 1、while循环的特殊用法之遍历文件的每一行 while read line; do     循环体 done < /PATH/FROM/SOMEFILE 依次读取/PATH/FROM/SOMEFILE文件中的每一行,将每一行赋值给变量line…

    Linux干货 2016-08-21
  • SElinux

    selinux  配置文件 修改   就要重启 targeted:用来保护常见的网路服务,仅有限进程受到selinux控制,只监控容易被入侵的进程。 targeted  慢慢完善的法律 系统默认使用   targeted     CENTOS6 CENTOS7 ZAI &nbsp…

    Linux干货 2016-09-14
  • iptables之nat

    NAT网络地址转换SNAT:修改IP报文中的源IP地址 本地向互联网请求让本地网络中的主机可使用统一地址与外部通信,从而实现地址伪装请求:修改源IP,如果修改则由光梨园定义响应:修改目标IP,由nat自动根据会话表中追踪机制实现相应修改DNAT:修改目标地址转换 外网服务器向其他客户端请求请求:由外网主机发起,修改其目标地址,由管理员定义相应:修改源地址,但…

    2017-11-12
  • 第二周 文件管理

    1.Linux上的文件管理类型命令都有哪些,其常用的使用方法及其相关示例演示 mkdir—— 创建目录  make directory 命令格式——mkdir [OPTION]… DIRECTORY… -p:自动按需创建父目录; -v:verbose,显示详细过程; -m MODE:创建目录直接给定权限,否则是默认权限; 注意:路径基…

    2017-12-10
  • linux用户权限管理

       在linux文件系统中使用ls -l命令可以查看文件的属性,但是我们明白其中属性各自代表的意思吗?下面我们就来看一看,这其中的奥义。。。 文件属性 使用ls命令查看文件,可以发现列表分为几个部分,各自所代表的意义如图所示: 文件属性操作     chown 设置文件的所有者  &nb…

    Linux干货 2016-08-04
  • LVS之nat&dr

    Evernote Export 负载均衡集群设计时的要点:        (1)session保持            session sticky(ip hash)            sess…

    Linux干货 2016-12-01