Linux三剑客——sed命令简述

Linux三剑客——sed
13.1 sed介绍

  1. sed——流编辑器(stream editor)
  2. sed功能与版本:处理文本文件,日志,配置文件
    增加、删除、修改、查询
    sed --version
  3. 语法格式:sed [选项] [sed指令] [输入文件]
    sed -i.bak ‘s#boy#girl#g‘ oldboy.txt
    -i sed命令的参数
    s sed命令
    g 小尾巴/修饰
  4. sed命令执行过程
    13.2 sed命令功能示例
  5. 等号’=‘显示行号
    sed = person.txt
  6. 单行-输入行号即可
    sed -n ‘3p‘ person.txt

    103,Alex,COO

  7. 显示多行
    sed -n ‘3,6p‘ person.txt
  8. 包含oldboy的行
    sed -n ‘/oldboy/p‘ person.txt

    101,oldboy,CEO

  9. 显示包含oldboy到显示yy的行
    sed -n ‘/oldboy/,/yy/p‘ person.txt

    101,oldboy,CEO
    102,zhangyao,CTO
    103,Alex,COO
    104,yy,CFO

  10. 显示包含oldboy或yy的行
    sed -nr ‘/oldboy|yy/p‘ person.txt
  11. 显示不连续的行
    sed -nr ‘1p;3p;4p‘ person.txt
  12. 文件的最后一行增加两行
    sed ‘$a106,wuxingge,UFO\n107,lee,XO‘ person.txt

    #a==append 追加
    #i==insert 插入

    echo -e ‘106,wuxingge,UFO\n107,lee,XO‘>>person.txt
    cat >>person.txt <<EOF

    106,wuxingge,UFO
    107,lee,XO
    EOF

  13. 不显示空行方法 !表示取反

    sed ‘/^$/d‘ person.txt

    sed -n ‘/^$/!p‘ person.txt

    awk ‘!/^$/‘ person.txt

    grep -v ‘^$‘ person.txt

  14. ‘s###’表示逐行替换符合条件的第一个对象

    sed ‘s#1#dou#‘ person.txt

    dou01,oldboy,CEO
    -i 表示确定修改
    -i.bak 表示先备份再修改
    sed中双引号内变量可以执行

  15. sed命令中&符号表示前面正则匹配到的内容

    echo ‘123456‘|sed ‘s#.*#<&>#g‘

    <123456>

    echo ‘123456‘|sed -r ‘s#([0-9])#<\1>#g‘

    <1><2><3><4><5><6>

    echo ‘123456‘|sed ‘s#.#<&>#g‘

    <1><2><3><4><5><6>
    13.3 批量修改文件名
    方法1-使用sed替换

    ls .jpg|sed -r ‘s#(.)jpg#mv & \1avi#g‘

    mv oldboy01.jpg oldboy01.avi
    mv oldboy02.jpg oldboy02.avi

    ls .jpg|sed -r ‘s#(.)jpg#mv & \1avi#g‘|bash

    方法2-使用rename方法批量修改文件名

    rename jpg avi old*.jpg

    rename from to file
    替换的内容 替换成什么 替换哪些文件
    13.4 使用sed命令常见的坑

  16. -r与-i同时使用:
    -r参数在前面:-ri 正常结果
    -i参数在前面:-ir 表示先把文件备份xxr,然后再替换文件中的内容
  17. -r与-n同时使用:会把源文件的内容清空,只显示符合条件内容

原文地址:http://blog.51cto.com/13520758/2059405

时间: 2025-01-02 00:13:14

Linux三剑客——sed命令简述的相关文章

简述linux中sed命令

sed命令:Stream EDitor 流编辑器 sed命令的工作流程: sed会复制原文件中的一行或者多行,逐行进行操作.首先会将该行的内容放入到模式空间内,在模式空间内进行定界或者正则表达式匹配操作. a.如果该行内容不符合正则表达式或定界,该内容则被判断为No,进行标准输出. b.如果该行内容符合正则表达式或定界,该内容则被判断为Yes,进行编辑(包括标准输出). sed中模式空间和保持空间中的内容会进行会换,这种会换会使文件内容进行多次的筛选编辑,完成复杂的任务.   一般情况下,sed

linux 之sed命令详解

sed命令详解 sed是什么 sed是linux文本处理三剑客之一,全称 StreamEDitor,非常著名的行编辑器,功能十分强大. sed的工作过程 sed处理文本时每次从文件复制出来一行,放在工作车间,又叫做模式空间,即pattern space,然后与模式进行匹配.如果复制出来的这一行不能被模式匹配到,就默认把这一行输出至标准输出(如果用户明确指定不输出也可以). 如果能被模式匹配到,就对这行数据进行用户指定的编辑操作,编辑完成后可能输出至标准输出,也可能是用户指定的其他操作.这样第一行

Linux三剑客-常用命令

Linux三剑客:grep, awk, sed. Linux命令搜索及查看-> 点击这里. grep 命令 :强大的文本'搜索'工具 grep -n 'word' file_name   在file_name文件中找到word所在的所有行并显示.-n 为显示行号 grep 'w[ea]ll' file_name     在file_name文件中找到wall 或者是well 所在的所有行并显示 grep 'w[^e]ll' file_name     在file_name文件中找到"非we

linux三剑客-sed

 sed命令 linux文本处理三剑客 sed stream editor 做为行编辑器,对文本进行编辑(以行为单位进行编辑) 注意:sed编辑文件,却不改变原文件 sed工作原理 制定一个文本文件,依次读取文本文件中每行的内容,读取到模式空间中(PATTERN SPACE),在模式空间中进行文本匹配(正则表达式),对匹配后的内容进行修改(替换.删除.打印.修改.保存)  用法: sed[option]…{script-only-if-no-other-   script}[input-file

关于linux中sed命令的简单用法

linux中sed的学习和使用 今天突然用到了sed这个命令,就即兴学习了一波突然感觉这个功能还是很强的.sed在#man sed下文档查看解释的是:用于过滤和转换文本的流编辑器.即如下图: 我自己用过这个命令之后感觉对于文档来说可以显示某个区间行,显示结果还可以在段前后添加内容删除,替换内容.但是最后才发现,怎么还能直接修改到文件里不仅仅是显示出来,文件内容直接被修改了. 下面就一一介绍这个有趣的命令,莫急莫急一个一个来. 首先找个文件(没用的文件且有内容,搞坏了系统文件可不好玩了)来当测试文

linux下sed命令对文件执行文本替换

让我们看一下 sed 最有用的命令之一,替换命令.使用该命令,可以将特定字符串或匹配的规则表达式用另一个字符串替换.下面是该命令最基本用法的示例: $ sed -e ‘s/foo/bar/’ myfile.txt 上 面的命令将 myfile.txt 中每行第一次出现的 ‘foo’(如果有的话)用字符串 ‘bar’ 替换,然后将该文件内容输出到标准输出.请注意,我说的是每行第一次出现,尽管这通常不是您想要的.在进行字符串替换时,通常想执行全局替换.也就是说, 要替换每行中的所有出现,如下所示:

Linux之sed命令的使用

Linux系统维护过程中,常通过自动脚本来处理运维方面的工作,而作为运维最常用语言即SHELL来完成脚本.而涉及到替换时我们常使用SED来完成替换工作. 这里简单归纳一下SED的功能,以方便后续脚本中的应用 SED最基本的格式遵循以下形式: sed [OPTION]...{script-only-if-no-other-script} [input-file]... [OPTION]中常用的是-e -i -e 表示被修改后的对象在命令行展示出来,但对象本身实际没有进行修改.你可以理解为仅展现修改

linux系统sed命令解析

1. Sed简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输出.Sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等.以下介绍的是Gnu版本的Sed3.02. 2. 定址 可以通过定址来定位你所希望编辑的行,该地址

linux中sed命令的使用(绝对精华版)

sed命令是linux或者shell编程中常用的筛选.替换命令,如果能熟练使用sed则对经常使用的人来说在工作上是非常有帮助的 下面把sed主要的用法列出来(有错误的地方大家可以指正): p命令只打印第三行,没有-n会在第三行后多打印第三行:sed -n '3p' filename 只打印最后一行:sed -n '$p' filename 只打印10到20行(包括10和20行,若后面数字小于前面数字,则只打印前面数字的行):sed -n '10,20p' filename 打印包含My在行尾的行