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

相关推荐

  • N26—第三周

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who | cut -d ' ' -f 1 |sort -u l_cong root (unknown)   2、取出最后登录到当前系统的用户的相关信息。 [l_cong@localhost ~]$…

    Linux干货 2017-02-15
  • 文件通配符是啥?

    文件通配符     包含 ‘?’, ‘*’ 或 ‘[‘ 字符的字符串称为通配符模板(wildcard  pattern).形成路径名(globbing)指一种操作,把通配符模板展开为匹配该串的路径名.匹配定义为:   …

    Linux干货 2017-04-23
  • 马哥教育网络班19期+第七周课程练习

    1、创建一个10G分区,并格式为ext4文件系统;   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;         mke2fs -b 2048 -m 2 -L 'MYDATA' -o defau…

    Linux干货 2016-06-21
  • Linux之网络管理

    Linux之网络管理     在学习linux的过程中,Linux网络的管理和配置中是很重要的,几乎学习的后期都离不开网络的概念和配置,如集群中的使用,学习好Linux网络至关重要。     Linux网络IP地址有两种配置方式:静态指定和动态分配 动态分配就是利用DHCP服务器,动态的给linux主机分配IP地址。静…

    Linux干货 2016-09-05
  • Liunx学习小结2

    1. Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。文件管理类命令有:cp、mv、rmcp [选项] [参数]选项:-a:此参数的效果和同时指定”-dpR”参数相同;-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;-f:强行复制文件或目录,不论目标文件或目录…

    Linux干货 2017-07-31
  • 邮件原理你真的造吗

    一、前言     虽然现在QQ、微信等即时聊天工具原来越盛行,但是在企业与企业之间大部分还是会使用邮件系统进行信息交换。所以作为运维人员,更需要了解这个技术的原理。下面会慢慢介绍邮件的组件功能,将其组成部分。以及邮件的工作原理。     小贴士:邮件系统是一个比较复杂的系统,过程…

    Linux干货 2015-08-17