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

相关推荐

  • 震惊!!!!!!!几步学会创建,查看,复制,转移,删除文件!!!!!

    震惊!!!!!!!!!!!!!!!!!!!!

    2018-07-29
  • 第五周作业

    1、简述rpm与yum命令的常见选项,并举例
    2、自建yum仓库,分别为网络源和本地源
    3、简述at和crontab命令,制定 每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00
    4、简述sed常用操作命令,并举例

    Linux笔记 2018-06-11
  • Shell脚本进阶一

    随着课程的进度,对shell脚本进行进行全面的总结

    Linux笔记 2018-04-23
  • 在VM中安装CentOS6.10

    CenOS6.10详细安装过程,用于课堂笔记

    2018-07-19
  • Linux学习笔记——权限管理

    Linux学习笔记——权限管理 前言: Linux下的权限管理与日常使用的windows有众多与众不同之处。这些特性使得Linux在实际生产作业中更加安全与高效,发挥着各种灵活的作用。本文简要写下笔者对Linux权限管理的理解,供参考与复习,欢迎指正。 回顾: 确认文件的权限与所有者: 使用ll(即ls -l) 命令可查看这个文件的详细信息。 $ ll da…

    2018-04-07
  • 网络管理基础

    IP地址由网络ID和主机ID组成 A类:0 000 0000 – 0 111 1111:1-127 网络数:126 每个网络中的主机数2^ 24-2=16777214 B类:10 00 0000 – 10 11 1111:128-191 网络数:2^ 14=16384 每个网络中的主机数:2^ 16–2=65534 C类:100 0 …

    2018-04-01