文本处理工具sed

一个强大的文本处理sed,行编辑器

9

文本处理工具  sed:

sed介绍

sed    行编辑器(用来编辑一个或多个文件)

sed     [option ] …   ‘script’   inputfile…

常用选项:

-n    关闭自动打印

-e: 多点编辑

-f:/PATH/SCRIPT_FILE: 从指定文件中读取编辑脚本

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

-i.bak: 备份文件并原处编辑

script:   ‘地址命令’

地址定界:

  1. 不给地址:对全文进行处理
  2. 单地址:# :指定行; $:最后一行

/pattern/:被此处模式所匹配到的每一行

  1. 地址范围:#,# #,+#        /pat1/,/pat2/         #,/pat1/
  2. ~:步进 1~2 奇数行        2~2 偶数行

编辑命令;

d: 删除模式空间匹配的行,并立即启用下一轮循环

p:打印当前模式空间内容,追加到默认输出之后

a [\]text:在指定行后面追加文本     支持使用\n实现多行追加

i [\]text:在行前面插入文本

c [\]text:替换行为单行或多行文本

w    /path/somefile: 保存模式匹配的行至指定文件

r     /path/somefile:读取指定文件的文本至模式空间中 匹配到的行后

=: 为模式空间中的行打印行号

!:模式空间中匹配行取反处理

搜索替代

s///:查找替换,支持使用其他分隔符,s@@@       s###

替换标记:

g: 行内全局替换

p: 显示替换成功的行

w  /PATH/TO/SOMEFILE:将替换成功的行保存至文件中

 

例如: sed  -r   ‘s/(.*)/magedu\1/’   /etc/passwd       //每行开头加magedu

sed -r  ‘/GRUB_CMDLINE_LINUX/s/(.*)”$/\1 xyz”/’   /etc/default/grub

sed -r  ‘/GRUB_CMDLINE_LINUX/s/”$/ xyz”/’   /etc/default/grub

ifconfig ens32 |sed -n ‘2p’|sed  -r  ‘s@.*inet (.*) net.*@\1@‘   //取IP地址

ifconfig ens32 |sed  -r  ‘2!d;s@.*inet (.*) net.*@\1@‘      //取IP地址

ifconfig ens32 |sed  -n ‘2p’ |sed -e ‘s/.*inet//’ -e ‘s/ netmask.*//’     //取IP地址

echo “/etc/sysconfig/network”  |sed -r ‘s/(.*\/)([^/].*\/?$)/\2/’  //取基名或文件名

 

sed两种空间模式:模式空间:相当于处理数据的地方

保持空间:相当于存储

高级编辑命令

P:打印模式空间开端至\n内容,并追加到默认输出之前

h: 把模式空间中的内容覆盖至保持空间中

H:把模式空间中的内容追加至保持空间中

g: 从保持空间取出数据覆盖至模式空间

G:从保持空间取出内容追加至模式空间

x: 把模式空间中的内容与保持空间中的内容进行互换

n: 读取匹配到的行的下一行覆盖至模式空间

N:读取匹配到的行的下一行追加至模式空间

d: 删除模式空间中的行

D:如果模式空间包含换行符,则删除直到第一个换行符的模式空间中的文本, 并不会读取新的输入行,而使用合成的模式空间重新启动循环。如果模式空间 不包含换行符,则会像发出d命令那样启动正常的新循环

sed   -n  ‘n;p’    file或   sed  -n   ‘2~2p’    file    //打印偶数行

sed   ‘1!G;h;$!d’  file   //倒序显示文本内容

sed  ‘N;D’   file          //只保留最后一行内容

sed  ‘$!N;$!D’     file   //保留最后两行文本

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

(0)
qljqlj
上一篇 2018-04-19 19:14
下一篇 2018-04-19 19:24

相关推荐

  • Linux学习笔记——特殊权限之 SUID GUID StickyBit

    ◆ SUID ( Set User ID ) Linux里,用户的ID被称作UID。在实际生产中,可能需要临时借用别的用户执行程序,因此需要能够临时变更自己UID的机能叫做SUID。借助SUID权限,用户可以临时调用root权限。※ 通常,文件的执行是由所属者发起,然而,赋予SUID权限后可临时继承所有者的权限(来执行文件)。通常用于二进制可执行文件上,文件…

    Linux笔记 2018-04-07
  • 在linux服务器上运行django项目

    在linux服务器上运行django项目(1)需进入已创建的虚拟环境中。 (2)在虚拟环境中进入需要运行django项目(需进入到含有apps等文件的文件夹)                                                   进入哪个虚拟环境就是用哪个虚拟环境。 (3)MAKEMIGRATIONS:命令 python man…

    Linux笔记 2018-05-01
  • Linux系统学习-第二周

    学习笔记

    2018-05-20
  • mysql数据库三:

    用户权限管理和访问限制,数据库的锁定;索引和日志

    2018-06-09
  • linux 学习5

    1. RPM包管理 1.1 RPM简介 RPM类似于Windows系统中.exe的软件安装程序,用户可以使用它自行安装和管理Linux上的应用程序和系统工具; RPM软件包文件都是以.rpm为后缀,一般采用这样的命名格式:软件包名称 – 版本号 – 修正版 . 硬件平台 . rpm。 1.2 RPM命令的使用方法 查询:rpm {-q | –query} […

    2018-07-21
  • SELinux简介

    SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。

    2018-05-15