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

相关推荐

  • wordpress和discuz的负载均衡(lvs-nat)

    实验目的:利用lvs-nat模型实现wordpress和discuz的负载均衡 实验要求:客户端访问wordpress或Discuz服务时,无论被调度至哪台RS上,其会话和访问的页面都应保持一致; 实验环境:一台server用作VS(需要两块网卡,eth1连接内部网络,eth0连接外部网络),两台server用作RS,一台server用于部署mysql、NF…

    2017-05-13
  • vsftpd相关应用解析

    FTP(File Transfer Protocol)文件传输协议 FTP 是 TCP/IP 协议组中的协议之一。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称…

    2017-06-06
  • 进程管理

    linux维护工作中,常常需要对系统上运行的程序进行管理,那么进程管理就显得相当重要。 进程初识 什么是进程?   进程是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念。它代表CPU所能处理的单个任务。 什么是线程?   线程是程序流执行的最小单元,可以理解为进程中执行的一段程序片段。 进程与线程联…

    Linux干货 2016-09-07
  • dd工具

    dd     dd命令:convert and copy a file     用法:        ddif=/PATH/FROM/SRC of=/PATH/TO/DEST       &…

    Linux干货 2016-09-02
  • linux网络属性命令操作介绍(第十一天)

            linux网络属性常用命令有ifconfig\route\ip命令,centos7 的还是nmcli\nmtui。     网络属性的三大文件:修改DNS的文件/etc/resolv.conf  、修改网卡IP地址/etc/sysconfig/…

    Linux干货 2016-06-01
  • OpenStack Glance安装配置过程记录

    Glance是作为OpenStack的虚拟机的Image(镜像)服务, 它提供了一系列的REST API, 用来管理、查询虚拟机的镜像, 它支持多种后端存储介质, 例如用本地文件系统作为介质、Swift(OpenStack Object Storage)作为存储介质或者S3兼容的API作为存储介质。 Glance作为OpenStack的一个核心的系统, 被设…

    2017-09-14