Linux学习笔记之sed命令

讷于言而敏于行    ——《论语·里仁》

sed命令是一个用在对输入流进行处理的文本处理工具。掌握它能够更好地帮助管理Linux和处理日志文件。

用法:

sed [option] ‘command’ 输入流

常用option:

-n:安静模式,一般如果没有加-n选项,输入流中所有的行将会被列出,加入-n后只会列出‘command’处理过的行。一般与 command中p命令连用。

-r:默认sed只是支持一般的正则表达式,如果加上-r参数表示让sed支持扩展的正则表达式。

-i:插入,如果输入流是一个文件流,则直接在文件中修改内容而不是输出到屏幕。(慎用)

 

常用 ‘command’:

a(i):add(insert),在目标行数后一行(前一行)插入字符串。

d:delete,删除目标行。

p:print,打印目标行。

s:substitute ,用新的字符串替换 目标字符串。通常这个 s 的动作可以搭配正则表达式,且与vim中的替换类似。1,20s/old/new/g

c :替换目标行

例子:

删除:

      # sed ‘1d‘               #删除第一行 
      # sed ‘$d‘               #删除最后一行
      # sed ‘1,10d‘            #删除第一行到第十行
      # sed ‘2,$d‘            #删除第二行到最后一行

显示:

.    # sed -n ‘1p‘            #显示第一行 
     # sed -n ‘$p‘            #显示最后一行
     # sed -n ‘1,2p‘         #显示第一行到第二行
     # sed -n ‘2,$p‘         #显示第二行到最后一行

     # sed –n ‘/dbird/p‘    #打印所有包含dbird 的行

     # sed –n ‘/\$/p‘        #打印所有包含$符号的行

插入:

     #sed ‘1,3a drink tea  #在1到3行后面插入drink tea,则drink tea分别在第2,4,6行

     #sed  1,3i drink tea   #在1到3行之前插入drink tea,则drink tea分别在第1,3,5行

行替换:   

     #sed ‘1,2c Hi‘           #将第一到二行替换为Hi

字符串替换:

     格式:sed ‘s/要替换的字符串/新的字符串/g‘   (要替换的字符串可以用正则表达式)
     #sed ‘s/dbird/vbird/g‘    #替换dbird为vbird
      #sed ‘s/dbird//g‘           #删除dbird

 

     #sed -i ‘/匹配字符串/d‘  filename     #直接删除文件filename中的匹配的字符串

时间: 2024-10-10 14:15:36

Linux学习笔记之sed命令的相关文章

【Linux学习011】sed命令详解

一.简介 sed(Stream EDitor)是一种行编辑器,Linux中有三种常见的行编辑器:gred,sed,awk,其中awk命令最复杂,grep命令最简单,sed命令难度适中. sed命令能够接收一个文件或者管道输入流,以一次处理一行的方式处理完成整个文档,能够接收管道输入流是sed命令的一个特色功能. sed命令的详细使用方法在线手册:http://www.gnu.org/software/sed/manual/sed.html sed最全命令格式展开 sed OPTIONS... [

Linux学习笔记:sed

sed命令:vim的末行命令(ex模式命令): sed:Stream EDitor,流编辑器,以行为单位对一个或多个文件进行编辑处理:每一次sed都会处理给定文件中的一行内容. 在sed处理文本时,将正在处理的当前行存储到临时的缓冲区中,称为"模式空间":用当前行去匹配给定的PATTERN,如果能匹配,则使用command编辑处理:如果不匹配,则默认输出至标准输出:然后继续处理下一行,直到文件的末尾. 默认情况下,sed的所有处理行为不会影响源文件的内容: 我们一般会使用sed命令来自

学习笔记之sed命令使用

一.概述 1.  sed 全称为Stream Editor,就是行编辑器,意味着一次只处理一行文本,sed将被匹配到            的行放到自己特定的空间(通常称为模式空间)中进行编辑:然后再根据结果进行输出显示: 2.  在sed中还有一段空间称为保持空间,sed模式空间中的内容可以与保持空间的内容可以进            行自由互换,实际工作中用处很少,仅作参考: Sed工作流程如图 二.sed命令使用 sed [OPTION]... 'script' [input-file].

shell脚本学习笔记之sed命令用法

sed基本用法 sed:stream editor 行编辑器 sed:模式空间 将匹配的文本内容储存到模式空间中 默认不编辑原文件,仅对模式空间中的数据做处理,而后,处理结束后,架构模式空间的内容显示 sed -n -i:直接修改原文件 -e script -e script:可以同时执行多个脚本 -f file sed -f /scripts  file -r:表示使用扩展正则表达式 sed 'adresscommand' file... -n:静默模式,不再默认显示模式空间中的内容,即只显示

Linux学习之路-Sed命令

sed命令 工作机制:每次读取一行文本至"模式空间(pattern space)"中,在模式空间中完成处理:将处理结果输出至标准输出设备: 语法:sed [OPTION]... {script} [input-file]... [OPTION]说明 -r: 支持扩展正则表达式: 例:sed -rn '/(450|300)/p' testfile -n: 静默模式:sed默认输出处理后的内容,如果和p命令一起使用,只打印被处理的行 例:sed -rn '/(450|300)/p' tes

Linux学习笔记之grep命令及sed 命令相关选项

#grep  强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. 根据模式,搜索文本 ,并将符合模式的文本行显示出来,常与正则表达式相结合使用. [[email protected] ~]# grep --h 用法: grep [选项]... PATTERN [FILE]... 在每个 FILE 或是标准输入中查找 PATTERN. 默认的 PATTERN 是一个基本正则表达式(缩写为 BRE). 例如: grep -i 'hello world' menu.h main.c

Linux学习笔记8_三剑客命令的sed命令复习(替换)

需求:把目录下的所有.sh文件中的内容替换 实现: ls /data a.txt  b.sh  c.sh  d.info 方法1 ----------------------------------------------------------- 先查看替换前内容 find -type f -name "*.sh" |xargs cat before before 测试替换结果,sed无参数时仅打印输出 find -type f -name "*.sh" |xar

linux学习笔记23--时间命令date和cal

在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参数]... [+格式] 2.命令功能: date 可以用来显示或设定系统的日期与时间. 3.命令参数: 必要参数: %H 小时(以00-23来表示). %I 小时(以01-12来表示). %K 小时(以0-23来表示). %l 小时(以0-12来表示). %M 分钟(以00-59来表示). %P AM

LInux学习笔记之常用命令

以下命令主要是平时用到的命令,对于一些经常用到的,就收集资料,归纳一下. 指令目录: 1.yum 2.wget 3.tar 1.yum命令: yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载.安装.yum提供了查找.安装.删除某一个.一组甚至全部软件包的命令,