Sed命令的基本使用

原创 2016年05月30日 11:43:19

sed介绍

粘贴一段wiki的介绍:

sed (stream editor) is a Unix utility that parses and transforms text, using a simple, compact programming language. sed was developed from 1973 to 1974 by Lee E. McMahon of Bell Labs, and is available today for most operating systems.

总的来说就是sed是unix类os下的文本操作工具,负责解析和转换文本

Linux常用的文本工具

文本处理的三驾马车

  • grep

  • sed

  • awk

sed: stream Editor

Features

  1. 行编辑器,逐行进行

  2. 分为模式空间和保留空间

  3. 逐行处理,支持模式匹配(regex)

  4. 默认不处理源文件,仅对模式空间中的进行处理

  5. 处理结束后将模式空间中的结果输出到屏幕

Usage

sed [option] 'AddressCommond' file

Address(需要处理的行)

  • StartLine,endLine

比如1,100,表示1-100行
特别注意的是,可以使用$:最后一行

  • /RegExp/(正则表达式)

比如: /^root/,表示以root开始的行

  • /pattern1/,/pattern2/

第一次被pattern1匹配到的行开始到被pattern2匹配到的行结束

  • LineNumber

指定某行

  • startLine, +N

从startLine开始向后的N行,总共是N+1行

Commonds

sed的命令很多,这里我只列出常用的commonds

  • d:删除符合条件的行

  • p:显示符合条件的行

  • a \string:在匹配的行后追加新行,内容是string

  • i \string:在匹配的行前追加新行,内容是string

  • r FILE:将指定的文件的内容添加到匹配的行之后

  • w FILE:将指定范围内的内容另存到指定的文件中

  • s /pattern/ReplaceString/修饰符:将符合模式的字符串替换为ReplaceString(默认只替换每行中第一次被模式匹配到的串)

可以使用三个相同的字符来代替’/’,上面的字符串替换等价于s #pattern#ReplaceString#修饰符

特别的可以使用&:表示整个模式匹配到的字符串

修饰符:

  1. g:全局替换

  2. i:匹配时忽略大小写

Options

  • -n:静默模式,不显示模式空间中的内容

  • -r:使用扩展的正则表达式

  • -i:直接修改源文件(危险慎重使用)

  • -e 处理 -e 处理:连续进行sed的处理

  • -f:指定处理脚本

另外可以使用类似sed -f SCRIPTFILE file (将SCRIPTFILE中的每个命令作用在file上)

Examples

  1. sed ‘1,2d’ /etc/fstab (删除/etc/fstab的第一和第二行)
  2. sed -n ‘/^\//p’ /etc/fstab (显示/etc/fstab中以/开头的行)
  3. sed ‘/^\//a #hello world\n#hello,linux’ /etc/fstab (在/etc/fstab中以/开头的行后一行追加”#hello world\n#hello,linux”) (其中\n会换行)
  4. sed ‘2r /etc/issue’ /etc/fstab (在/etc/fstab中的第二行之后追加/etc/issue文件中的内容)
  5. sed ‘/oot/w /tmp/oot.txt’ /etc/fstab (将/etc/fstab文件中的包含oot的行的内容另存到/tmp/oot.txt)
  6. sed ‘s#1..e#&r#g’ sed.txt (将sed.txt中的符合l..e模式的字符串全部在后面加上”r”)
  7. sed ‘s#(1..e)#\1r#g’ sed.txt (将sed.txt中的符合l..e模式的字符串全部在后面加上”r”)
  8. sed ‘s#l(..e)#L\1#g’ sed.txt (将sed.txt中的符合l..e模式的字符串的小写的”l”换成大写的”L”)
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

sed命令详解

1.简介 sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。 sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程...

linux/unix命令详解之sed

ps:我只能说别说你会sed。。。这篇综合很多sed文档写成。 1. 功能说明:利用script来处理文本文件。 语  法:sed [-hnV][-e(script)][-f (script文...

[bash]sed流编辑器及其基本命令

1. 自动化文本处理——流编辑器sed和gawk:     1) 在自动化处理大量文本时普通的交互式编辑器(如Vim等)显得力不从心,而Unix中的流编辑器sed和gawk可以基于一组命令和脚本自动化...

sed命令基本语法笔记整理

sed命令的基本语法 1.      Sed命令的工作流程: Sed命令对文本的搜索是一行一行进行。 2.      Sed命令的基本语法格式 Man手册的语法描述: ...

sed命令基本用法

sed是一个飞交互式文本编辑器

sed 命令基本操作举例

1、替换 $ cat data1 this test inside test this test inside test this si inside test this si insi...

sed命令基本用法

sed命令简介sed:Stream Editer 行编辑器 、全屏编辑器(nano、vi)sed处理文本的内存空间叫做模式空间。 默认不编辑原文件,仅对模式空间中的数据做处理;而后,处理结束后...

Sed教程(四):基本命令、特殊字符、字符串

本教程将介绍一些有用的sed命令和使用示例。考虑一下我们有一个文本文件books.txt待处理,它有以下内容: 1) A Storm of Swords, George R. R. Martin, 1...

sed命令基本用法

1、sed:Stream Editor  行编辑器。工作原理:默认不编辑源文件,仅仅对模式空间的数据做处理。一行行将文件读入模式空间,处理完后再将模式空间的内容输出一遍。 sed和grep、awk编...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)