`
xubaoguo
  • 浏览: 79382 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sed的9种常用命令

阅读更多

 1.       打印:p
[root@TestAs4 chap04]# cat datafile               原文件
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17
eastern         EA      TB Savage               4.4     .84     5       20
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9
central         CT      Ann Stephens            5.7     .94     5       13

[root@TestAs4 chap04]# sed  -n '/north/p' datafile   取消默认输出 只打印包含模板的行
northwest       NW      Charles Main            3.0     .98     3       34
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9

[root@TestAs4 chap04]# sed '/north/p' datafile       打印包含模板的行及打印默认输出
northwest       NW      Charles Main            3.0     .98     3       34
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17
eastern         EA      TB Savage               4.4     .84     5       20
northeast       NE      AM Main Jr.             5.1     .94     3       13
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9
north           NO      Margot Weber            4.5     .89     5        9
central         CT      Ann Stephens            5.7     .94     5       13

2.       删除:d
   [root@TestAs4 chap04]# sed '3d'  datafile            删除第三行
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17
eastern         EA      TB Savage               4.4     .84     5       20
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9
central         CT      Ann Stephens            5.7     .94     5       13

[root@TestAs4 chap04]# sed '3,$d'  datafile          删除第三行到最后的所有行
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23

[root@TestAs4 chap04]# sed '/north/d' datafile        删除所有包含模板north的行
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17
eastern         EA      TB Savage               4.4     .84     5       20
central         CT      Ann Stephens            5.7     .94     5       13

3.       选定行的范围:逗号
    [root@TestAs4 chap04]# sed -n '/west/,/east/p' datafile     所有在模板west和east所确定的行都被打印 
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17


[root@TestAs4 chap04]# sed -n '1,5'p datafile           打印第一、五行的内容
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17

[root@TestAs4 chap04]# sed  '/west/,/east/s/$/**?VACA**/' datafile   对于east和west之间的行,末尾用**?VACA**替换
northwest       NW      Charles Main            3.0     .98     3       34**?VACA**
western         WE      Sharon Gray             5.3     .97     5       23**?VACA**
southwest       SW      Lewis Dalsass           2.7     .8      2       18**?VACA**
southern        SO      Suan Chin               5.1     .95     4       15**?VACA**
southeast       SE      Patricia Hemenway       4.0     .7      4       17**?VACA**
eastern         EA      TB Savage               4.4     .84     5       20
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9
central         CT      Ann Stephens            5.7     .94     5       13

[root@TestAs4 chap04]# sed  -n '/west/,/south/p' datafile                 
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
4.多点编辑:e命令
[root@TestAs4 chap04]# sed -e '1,3d' -e 's/Hemenway/Jones/' datafile    删除1到3行,用Hemenway替换Jones
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Jones  4.0     .7      4       17
eastern         EA      TB Savage               4.4     .84     5       20
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9
central         CT      Ann Stephens            5.7     .94     5       13


5. 从文件读入:r 命令
[root@TestAs4 chap04]# cat newfile 
        nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
        | ***SUAN HAS LEFT THE COMPANY*** |
        |_________________________________|


[root@TestAs4 chap04]# sed  '/Suan/r newfile'  datafile       把newfile文件内容放到Suan行的下面
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
southern        SO      Suan Chin               5.1     .95     4       15
        nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
        | ***SUAN HAS LEFT THE COMPANY*** |
        |_________________________________|
southeast       SE      Patricia Hemenway       4.0     .7      4       17
eastern         EA      TB Savage               4.4     .84     5       20
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9
central         CT      Ann Stephens            5.7     .94     5       13

注:如果不止一个Suan 则newfile的内容就将显示在所有匹配行的下面

6. 写入文件:w命令
[root@TestAs4 chap04]# sed  -n '/north/w  newfile2'  datafile   命令w表示把所有包含north的行写入到newfile2

[root@TestAs4 chap04]# cat newfile2
northwest       NW      Charles Main            3.0     .98     3       34
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9




7. 追加:a 命令 
[root@TestAs4 chap04]#  sed '/^north/a ---->THE NORTH SALES DISTRICT HAS MOVED    
northwest       NW      Charles Main            3.0     .98     3       34
---->THE NORTH SALES DISTRICT HAS MOVED
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17
eastern         EA      TB Savage               4.4     .84     5       20
northeast       NE      AM Main Jr.             5.1     .94     3       13
---->THE NORTH SALES DISTRICT HAS MOVED
north           NO      Margot Weber            4.5     .89     5        9
---->THE NORTH SALES DISTRICT HAS MOVED
central         CT      Ann Stephens            5.7     .94     5       13
注: 在出现首个单词是north的后一行追加---->THE NORTH SALES DISTRICT HAS MOVED行

8. 插入: i 命令
[root@TestAs4 chap04]# sed '/eastern/i\
> NEW ENGLAND REGION\
> -------------------------------------' datafile
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17
NEW ENGLAND REGION
-------------------------------------
eastern         EA      TB Savage               4.4     .84     5       20
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9
central         CT      Ann Stephens            5.7     .94     5       13

注:如果模板eastern被匹配,i命令把反斜杠后面的文本插入到包含eastern的行的前面


9. 替换:s 命令

[root@TestAs4 oracle]# pwd
/u01/app/oracle
[root@TestAs4 oracle]# pwd  | sed  's/\/[^\/]*$/old/'      把“/ u01/app/oracle”的 “/oracle”替换为old 
/u01/appold
[root@TestAs4 chap04]# sed -n 's/Hemenway/Jones/pg' datafile      所有的Hemenway行被Jones 替换并打印
southeast       SE      Patricia Jones  4.0     .7      4       17

0
2
分享到:
评论

相关推荐

    sed的常用命令思维导图

    sed的常用命令大全集合,适用于小白的快速入手。

    sed命令详解

    sed提供了丰富的命令来处理文本,包括但不限于以下几种: - **a**:在当前行后面添加一行或多行。 - **c**:替换当前行的内容。 - **i**:在当前行前面插入文本。 - **d**:删除行。 - **h**:将模式空间的内容复制...

    Linux主要shell命令、sed、awk使用详解

    Linux 中的 shell 有多种类型,其中最常用的几种是 Bourne shell(sh)、C shell(csh)和 Korn shell(ksh)。三种 shell 各有优缺点。Bourne shell 是 UNIX 最初使用的 shell,并且在每种 UNIX 上都可以使用。...

    sed命令详解 快速入门

    sed常用命令 | 命令 | 描述 | | --- | --- | | `a\文本` | 在当前行后面添加一行文本。 | | `b 标签` | 分支到脚本中带有指定标签的位置。 | | `c\新文本` | 替换当前行的文本。 | | `d` | 删除当前行。 | | `D` |...

    一些sed命令

    常用命令 - `p`: 打印匹配的行。 - `d`: 删除匹配的行。 - `s/pattern/replacement/`: 替换匹配的模式。 - `/pattern/q`: 找到匹配的行后立即退出。 - `i`: 在指定行之前插入文本。 - `a`: 在指定行之后追加文本。...

    Linux-02sed.ppt

    sed命令的常用操作:主要介绍sed命令的注释方法,打印文本,替换文本,删除文本,追加文本,插入文本,移到下一行,读写文件以及多行模式等。 组合命令:主要介绍如何在sed中组合多条命令以及如何将多条命令应用到一...

    linux script 好用的sed命令

    ### 其他常用命令 - **d**:删除匹配到的行。 - **a**:在指定行之后附加文本。 - **i**:在指定行之前插入文本。 - **c**:改变匹配到的整行,用新文本替换。 - **p**:打印匹配到的行。 - **n**:跳到下一个输入...

    shell ant sed命令

    标题中的"shell ant sed命令"涉及的是三种在Unix/Linux及类似操作系统中常用的命令行工具,它们在IT领域尤其是软件开发和系统管理中扮演着重要角色。 1. **Shell**:Shell是操作系统提供的一种命令行解释器,允许...

    sed命令详解.docx

    **sed命令详解** **1. sed命令的基本概念** sed(stream editor)是一个强大的文本处理工具,主要用于对文本文件进行非交互式的编辑操作。它的工作方式是逐行读取输入文件,将当前处理的行存储在临时缓冲区(模式...

    SED命令完全解读

    - `\>` 和 `分别表示词首和词尾,但在SED中,它们并不常用,因为默认的分隔符通常是空格或制表符。 2. **修饰字符(modifier)**: - `*`:匹配前面的字符0次或多次。 - `?`:匹配前面的字符0次或1次。 - `+`:...

    linux系统常用命令sed使用手册

    ### Linux系统常用命令sed使用手册 #### 一、引言 **sed**(Stream Editor)是一种在Linux和UNIX系统中广泛使用的强大文本处理工具。它允许用户通过一系列预定义的命令来自动化文本编辑任务,无需手动打开文件进行...

    sed 命令的和cut命令的用法

    `sed` 和 `cut` 是两个非常常用的 Linux 命令,它们主要用于处理文本文件,进行数据筛选和格式化。`sed` 是流编辑器,它可以在不改变原文件的情况下,对文本进行实时编辑和输出;而 `cut` 则用于从每行中提取出指定...

    sed命令总结.pdf

    sed命令是UNIX和类UNIX系统中常用的流编辑器,它能够执行基本的文本转换功能。sed可以看做是非交互式的文本编辑器,因为它不会改变文件内容,而是将编辑后的文本输出到标准输出。在Linux系统中,sed命令通常用于脚本...

    sed用例(比较常用的例子)

    ### sed 常用用例详解 #### 一、显示通篇文档,除了两个正则表达式之间的内容 **命令**: `sed '/Iowa/,/Montana/d'` **解释**: 此命令会删除从匹配到 “Iowa” 开始到匹配到 “Montana” 结束之间的所有内容。...

    Linux常用命令详解.pdf

    ### Linux常用命令详解知识点 #### 一、命令格式与通配符 - **命令格式**: - **命令**:指定要执行的操作。 - **选项**:改变命令的行为方式,通常以`-`开头,多个选项可以用空格或直接连接的方式给出。 - **...

    Linux下sed命令的用法

    接下来,让我们了解一些sed命令中最常用的选项和用法: 1. 替换文本内容: 使用sed的替换功能,可以通过正则表达式匹配特定的文本,并将其替换为其他文本。例如,将文件中的“root”替换成“westos”: ``` sed '...

    shell中常见命令与awk,sed的等价命令

    本文将详细介绍一系列常用的shell命令及其在`awk`和`sed`中的等价实现方法。 #### 二、等价命令详解 ##### 1. `cat` **Shell命令:** `cat <file>` **Sed等价命令:** `sed 'p' <file>` **Awk等价命令:** `awk '{...

    正则表达式和SED命令

    SED命令(Stream Editor)是一种流编辑器,用于对文件的内容进行增删改查。它一次处理一行内容,从输入流(文件、管道、标准输入),称为“模式空间”pattern space,接着用SED命令处理缓冲区的内容。 SED命令的...

Global site tag (gtag.js) - Google Analytics