sed介绍

grep 只能过滤文件内容,sed既能过滤文件内容同时还能对文件内容进行修改.  sed 算是一种编程语言,它有自己的固定语法.

sed是一种行编辑器,sed会在内存中开辟一块独立的空间(模式空间),每次读取磁盘文件中的一行调入内存空间并且默认自动打印到屏幕

sed基本语法

1. sed  [option]   'script'  file

script : "地址命令addresscmd"

cmd: p   d  a  i   c  w r  =

sed命令实例

1.sed -n '/^root/p' /etc/passwd

2.  sed -n '/^root\>/p' /etc/passwd

3.   sed   -n   "1~3p"    f1

4.   sed   -n   '2!p"        f1

5.  sed  -r   's/(root)/admin\1/g'      /etc/passwd

6.  sed  -r    's/(.*)/\1edu/'              /etc/passwd

7. sed   -r    's/(.*)/edu\1/'              /etc/passwd

8. sed -r 's*/(bin/bash)$*/s\1*'       /etc/passwd

9.sed -r '/GRUB_CMDLINE_LINUX/s/(.*)"$/\1 XYZ"/' /etc/default/grub 或者 sed -r '/GRUB_CMDLINE_LINUX/s/"$/ xyz"/' /etc/default/grub

10.使用正则表达式表示整行字符同时分割并且取到相应的字符串

正则表达式  (.*inet)(.*)(netmask.*)表示包含ip地址的整行字符串

把整行字符串分组分割成三个部分.可以取到任意分组中的字符串.

11.删除单行注释符号   找到符号用空来替代

sed    '/^#NameVirtualHost/s/#//'          /etc/httpd/conf/httpd.conf

12.删除多行的注释符号

sed '/^#VirtualHost/,/^<\/VirtualHost/s/#//' /etc/httpd/conf/httpd.conf

/^#VirtualHost/         匹配到的开始行

/^<\/VirtualHost/        匹配到的结束行

对开始行和结束行中的所有行进行操作

13.    echo "/etc/sysconfig/network/" | sed -r 's/(.*\/)([^/]+\/?)/\2/'

echo "/etc/sysconfig/network/" | sed -r 's/(.*\/)([^/]+\/?)/\1/'

sed的高级语法

sed 命令包含两个操作空间

1. 模式空间          默认只能包含一行的文本内容   相当于正在处理数据的空间

2. 保持空间          相当于一个小仓库,用来存储暂时在模式空间中没有处理完成的数据.

[root@centos7 boot]# seq 10 | sed -n 'n;p'
   2
   4
   6
   8
   10

sed '1!G;h;$!d'  file  '1!G;  h;   $!d' 相当于通过;号把这个命令分成了3个脚本.sed读取文件的每一行文本内容依次执行这三个脚本命令.

sed 'N;D'  file

[root@centos7 boot]# seq  5 | tac

5

4

3

2

1

倒序内容命令

1. ls *.rpm | rev | cut -d -f2 | rev | sort | uniq -c

tac 把整个文件的行倒叙显示
     rev 按每行字符内容倒叙显示

[root@centos7 ~]# seq 10 | xargs -n2
  1 2
  3 4
  5 6
  7 8
  9 10

sed 操作命令的更多相关文章

  1. linux的sed命令(一)

    转自:https://www.cnblogs.com/ginvip/p/6376049.html Sed 简介 sed 是一种新型的,非交互式的编辑器.它能执行与编辑器 vi 和 ex 相同的编辑任务 ...

  2. linux命令总结sed命令详解

    Sed 简介 sed 是一种新型的,非交互式的编辑器.它能执行与编辑器 vi 和 ex 相同的编辑任务.sed 编辑器没有提供交互式使用方式,使用者只能在命令行输入编辑命令.指定文件名,然后在屏幕上查 ...

  3. linux 三大利器 grep sed awk sed

    sed主要内容和原理介绍 sed 流处理编辑器 sed一次处理一行内容,读入一行处理一行 sed不改变文件内容(除非重定向) sed 命令行格式 $ sed [options] 'command' f ...

  4. linux---(6/27)tr命令和sed命令详解

    Tr命令: tr是简单的单个“字符”处理工具,而sed是功能非常强大的“字符串”处理工具. 用于查询,字符串2用于处理各种转换.tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始 ...

  5. sed命令用法

    Sed 简介 sed 是一种新型的,非交互式的编辑器.它能执行与编辑器 vi 和 ex 相同的编辑任务.sed 编辑器没有提供交互式使用方式,使用者只能在命令行输入编辑命令.指定文件名,然后在屏幕上查 ...

  6. sed 流编辑命令

    1.命令功能 sed非交互式的流编辑器,sed不会修改源文件内容,除非重定向来保存输出结果:默认情况下所有的输出行都将被打印到屏幕上. 2.语法格式 sed  [option]  {script-on ...

  7. sed命令入门

    什么是sed sed是一种流处理编辑器,可以分割.查找.替换文本. sed命令的处理流程:行处理 Created with Raphaël 2.1.0在shell中执行sed文本或管道输入读入到模式空 ...

  8. linux sed命令(擅长输出行)(转)

    linux命令总结sed命令详解 Sed 简介 sed 是一种新型的,非交互式的编辑器.它能执行与编辑器 vi 和 ex 相同的编辑任务.sed 编辑器没有提供交互式使用方式,使用者只能在命令行输入编 ...

  9. 【三剑客】sed命令

    1. Sed 简介 sed 是Stream Editor(流编辑器)的缩写,是操作.过滤和转换文本内容的强大工具.常用功能有增删改查,过滤,取行.   sed 是一种新型的,非交互式的编辑器. 它能执 ...

随机推荐

  1. [Algorithm] Warm-up puzzles

    闲下来后,需要讲最近涉及到的算法全部整理一下,有个indice,方便记忆宫殿的查找 MIT的算法课,地球上最好:https://ocw.mit.edu/courses/electrical-engin ...

  2. 5. RAMN备份与恢复

    一. rman简介 RMAN(Recovery Manager)是一种用于备份(backup).还原(restore)和恢复(recover)数据库的 Oracle 工具.RMAN只能用于ORACLE ...

  3. cocos2d-x游戏引擎核心(3.x)----事件分发机制之事件从(android,ios,desktop)系统传到cocos2dx的过程浅析

    (一) Android平台下: cocos2dx 版本3.2,先导入一个android工程,然后看下AndroidManifest.xml <application android:label= ...

  4. spring框架排错

    1.格式错误. http://www.springframework.org/schema/mvc       http://www.springframework.org/schema/mvc/sp ...

  5. java中常用的加密方式

    加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容.大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密(有些 ...

  6. 好用的 Chrome 插件,提升你的学习工作效率

    Google Chrome 应该是大部分人都用的一款浏览器,但却有很少人会注意到它丰富的扩展插件,擅于使用这些插件,能让自己的工作效率大大提高,今天趁着周末休息,就不谈技术伤大家的脑细胞了,给大家分享 ...

  7. Jenkins设置备份

    安装备份插件,系统管理-插件管理 可选插件搜索backup 备份 系统管理-Backup manager 设置备份路径 恢复

  8. MSSQL 将大表改成已分区表

    --select * from sys.partition_functions --select * from sys.partition_range_values use [UpdateLog] g ...

  9. easyui treegrid 动态展开数据(暂记)

     ClassifyAdminSynMsgSvr.GetCLFLList("<%=CurUTag %>", 1, "", function (ret) ...

  10. Sql Server :SELECT a.*,b.HZXM FROM YG_LIS_JCBYTK a(nolock)中的NOLOCK作用

    转自 http://blog.csdn.net/xingxing1828/article/details/34850771 先说下其区别,之后再做测试. 大家都知道,每新建一个查询,都相当于创建一个会 ...