sed是非交互式的编辑器。它不会修改文件,除非使用shell来重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。

 sed编辑器逐行处理文件,并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从缓冲区删除,然后将下一行读入,进行处理和显示,处理完输入文件的最后一行后,sed便结束运行。sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以将不会修改原文件。

 $ nl regular_express.txt | sed '2,4d'  #将regular_express的内容列出并打印行号,同时将2-5行删除

 $ nl regular_express.txt | sed '2d'  #将regular_express的内容列出并打印行号,同时将第2行删除

 $ nl regular_express.txt | sed '3,$d'  #将regular_express的内容列出并打印行号,同时删除第三行和最后一行,$定位到最后一行  

 $ sed -i '1d' regular_express.txt #在原文中删除第一行

 a表示在行后加上字符串  i表示在航前添加字符串

 $ nl regular_express.txt | sed '2a text'   #在第二行后加入test字符串

 $ nl regular_express.txt | sed '2i text'    #在第二行前添加test字符串

 $ nl regular_express.txt | sed '1a test/ntest'  #在1行后加入两行test  \n表示换行

 $ nl regular_express.txt | sed '2,5c No 2-5 number'  #将2-5行内容改为No 2-5 number

 sed命令中-n为安静模式选项

 $ nl regular_express.txt | sed -n '5,7p'  #只输出5-7行

 $ nl regular_express.txt | sed '5,7p'  #输出全部 并且5-7行输出double

 sed 's/被替换字符串/新字符串/g'

 $ /sbin/ifconfig eth0 | grep 'inet'  #获取本机IP的行

 $ /sbin/ifconfig eth0 | grep 'inet' | sed 's/.inet...://g'

 $ /sbin/ifconfig eth0 | grep 'inet' | sed 's/.\{0,9\}://g'  #将IP前面的部分给予删除

 $ /sbin/ifconfig eth0 | grep 'inet' | sed 's/.inet...://g' | sed 's/..:.*$//g' #将IP后面的部分删除

 $ /sbin/ifconfig eth0 | grep  'inet' | sed 's/.inet...://g' | sed 's/.\{0,3\}:.*$//g'   #将IP后面的部分删除

 

sed工具命令的更多相关文章

  1. 工作常用的linux/mysql/php/工具命令

    工作常用的linux/mysql/php/工具命令: 1. tar备份目录 tar zcvf ****.tar.gz ****/ tar 备份跳过目录 tar --exclude=test1 3. s ...

  2. shell脚本 sed工具

    sed工具概述(流式编辑器)非交互,基于模式匹配过滤及修改文本逐行处理,并将结果输出到屏幕可实现对文本的输出,增,删,改,查等各种操作 sed流控制:!:取反操作,根据定址条件取反n:读下一行,产生隔 ...

  3. Linux文件格式化与相关处理及sed工具

    http://blog.csdn.net/pipisorry/article/details/52564957 geditor, sed, ed, awk, Emacs 文本处理工具 [Linux S ...

  4. linux学习——sed工具

    命令格式: sed [-nefr] [动作] 1.sed可以分析标准输入(STDIN)的数据,然后将数据处理后,再将他输出到标准输出(STDOUT),他有替换.删除.新增.选定特定行等处理功能.sed ...

  5. sed工具的基本用法

    sed文本处理工具的用法: 用法1:前置命令 | sed [选项] '条件指令' 用法2:sed [选项] '条件指令' 文件.. .. 认识sed工具的基本选项 sed命令的常用选项如下: -n(屏 ...

  6. sed工具

    SED是一个非交互式文本编辑器,它可对文本文件和标准输入进行编辑,标准输入可以来自键盘输入.文本重定向.字符串.变量,甚至来自于管道的文本,与VIM编辑器类似,它一次处理一行内容,Sed可以编辑一个或 ...

  7. Linux sed工具的使用

    基础知识 - 行编辑工具: 一行一行处理文件内容 - 全屏编辑工具:一次性将文件所有内容加载到内存中 sed编辑器: Stream Editor 工作原理: 逐行处理文件内容,一次读取一行内容到模式空 ...

  8. OrchardNoCMS模块生成工具命令简化

    OrchardNoCMS模块生成工具命令行简化列表:   目前只有codegen feature和cultures三个命令. 对应的都进行了参数简化. 例如:codegen module 简化为cod ...

  9. 命令行工具命令 - run包到手机里

    命令行工具命令 你完全可以选择不输入以下这些命令,执行这些命令的结果与在 Android Studio 中单击"运行"按钮是一样的. chmod +x gradlew - 此命令只 ...

随机推荐

  1. redis教程(The little redis book中文版)

    许可证 <The Little Redis Book>是经由Attribution-NonCommercial 3.0 Unported license许可的,你不需要为此书付钱. 你可以 ...

  2. go变量赋初值

    package main import "fmt" func variableinitial(){ , var s string="abc" fmt.Print ...

  3. 哈希表-java

    import java.util.HashMap; import java.util.Iterator; public class JavaHashMap { public static void m ...

  4. Linux - 命令重定向

    命令重定向, 就是将目前得到的数据转移到指定的地方.分为以下几种: >>>1>2>1>>2>>< 1. > 与 >>先看一 ...

  5. C# int.ToString() 常用参数说明

    C#中int类型的ToString()方法有个重载是输入一个字符串,这个字符串可以对int进行部分格式化操作,如上.

  6. Java类和对象的概念

    Java是一门面向对象的编程语言,理解Java,首先要理解类与对象这两个概念. Java中的类可以看做C语言中结构体的升级版.结构体是一种构造数据类型,可以包含不同的成员(变量),每个成员的数据类型可 ...

  7. codeforces 578c//Weakness and Poorness// Codeforces Round #320 (Div. 1)

    题意:一个数组arr,一个数字x,要使arr-x的最大子段最小,问该最小值. 三分x,复杂度logn,内层是最大子段的模板,只能用n复杂度的.因为是绝对值最大,正负各求一次,取大的.精度卡得不得了,要 ...

  8. Jersey 2.x 基于 Servlet 的服务器端应用

    下面的依赖通常应用到应用服务器上(servlet 容器),同时这个应用服务器上没有整合任何 JAX-RS 的实现. 因此,这个应用服务器需要包含有 JAX-RS API 和 Jersey 实现,同时部 ...

  9. Confluence 6 更新目录

    当编辑目录时候的限制 你不能对你用户属于的目录进行编辑,禁用或者删除.这个能够预防管理员通过修改目录的时候讲自己属于的管理员权限从系统管理员组中删除. 这个限制对所有的用户目录类型适用.例如: 如果当 ...

  10. JVM自定义类加载器加载指定classPath下的所有class及jar

    一.JVM中的类加载器类型 从Java虚拟机的角度讲,只有两种不同的类加载器:启动类加载器和其他类加载器. 1.启动类加载器(Boostrap ClassLoader):这个是由c++实现的,主要负责 ...