文本处理工具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

相关推荐

  • 第九周笔记

    实验:实现CENTOS7 PXE安装 0 selinux ,firewall 关闭 1 安装包 yum install dhcp tftp-server httpd syslinux systemctl enable dhcpd httpd tftp.socket systemctl start httpd 2 准备YUM源 mkdir /var/www/h…

    Linux笔记 2018-05-27
  • LVM ,RAID详解及实例分析

    lvm 逻辑卷:由 dm 模块实现PV :物理卷 物理设备:可以是分区,raidVG :由多个pv组合的一个卷组相当于扩展分区,不能直接使用,它会将多个pv组合的逻辑设备上划分为多个大小为PE的块,PE大小比block chunk 大的多,由于受内核限制的原因,一个逻辑卷(Logic Volume)最多只能包含65536个PE(Physical Extent…

    Linux笔记 2018-04-23
  • memcached

    数据结构模型: 结构化数据:关系型数据库;mysql、mariadb、oracledb 半结构化数据:xml、json、nosql 非结构化数据:文件系统; 缓存系统的种类: 代理式缓存; 旁路式缓存; memcached的特性: k/v缓存:可序列化数据;存储项:key/value,标志,过期时间; 功能的实现一半依赖于服务端,一半依赖客户端; 分布式缓存…

    2018-07-14
  • 第二周

    反向单引号 ` `:执行能力强,可以执行命令 [等价于$()]单引号 ‘ ’:只显示字符双引号 “ ”:识别变量,不识别命令花括号{ }: 里面内容互相组合 打印重复字符串的简化形式echo file{1,3,5} 显示为file1.3.5rm -f file{1,3,5} 删除file1.3.5echo file{1..10} 显示为file1&#8230…

    Linux笔记 2018-07-29
  • 第八周笔记

    awk 文本三剑客之一,文本处理工具 awk分为Gawk Pawk Dawk Centos用的是Gawk模式扫描处理的语言/user/bin/awk awk的路径 awk的使用语法awk [选项] `program` var=value file…..(变量赋值)awk [options] ‘program’ var=value file…awk…

    Linux笔记 2018-05-20
  • 运维制动化之系统安装 实验

      步骤 0:selinux,iptables 1 安装包 2 启服务 3 修改配置文件;reload,restart 4 测试 网卡模式不要桥接: vim /etc/dhcp/dhcpd.conf option domain-name “magedu.org”; option domain-name-servers 114…

    2018-05-25