文本处理工具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运维命令以及概念整理总结(1)

    1、文件系统分层结构: LBS Linux Standard Base
    2、ls命令、wc命令、时间戳、stat、通配符glob
    3、touch、cp、mv、rm、批量改名rename
    4、tree、mkdir、rmdir
    5、节点编号inode以及节点表、硬链接以及软链接
    6、file命令、标准输入,标准输出

    2018-04-14
  • linux 学习6

    1、简述osi七层模型和TCP/IP五层模型 1、 osi七层模型 1、应用层:OSI 参考模型中最靠近用户的一层,为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。 2、表示层:提供各种用于应用层数据的编码和转换功能,确保一个主机的应用层发送的数据能被另一个主机的应用…

    Linux笔记 2018-07-28
  • liunx 基础

    简单命令:

    Linux笔记 2018-04-01
  • linux ACL访问控制列表

    1.ACL介绍 Linux 下用户对文件的操作权限有 r-读, w-写, x-可执行三种,而对linux 下的文件而言,用户身份分为:所有者, 所属组, 其它人, 且文件的所有者,所属组都只能是一个,所以在对文件分配用户的使用权限时,只能对这三种身份进行分配rwx 权限.Linux 主要作为服务器系统使用,用户众多.所以在实际使用场景中,这三种身份并不能很好…

    Linux笔记 2018-04-08