Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >sed 使用教程 - 通读篇(30分钟入门系列)

sed 使用教程 - 通读篇(30分钟入门系列)

原创
作者头像
yorkjin
修改于 2018-07-20 13:27:58
修改于 2018-07-20 13:27:58
4.3K2
举报
文章被收录于专栏:york技术分享york技术分享

导言

和上篇 awk 分享一样,作为通读性的分享,不想引入太过复杂的东西,依然从日常工作中碰到的 80% 的需求出发,重点阐述最重点的部门,工作原理等,普及一些对sed的意识,明白能帮我们解决哪些问题。通读类分享依然遵循浅显易懂,利用吃饭,坐车等零散时间即可学会的宗旨。

简介

sed使用及常见参数 sed使用例子积累

修改:

sed基本语法和操作原理

和awk一样是个堪称文本处理神奇,本篇主要总结下sed的运行原理,和我们日常工作中90%的运用场景,难的需求和奇葩需求需要根据这些简单原理可以自己去挖掘。重要的目的是学习一个sed的意识,了解能帮我们处理哪些问题。

如果你遇到一下场景,可以考虑使用sed

  • 配置文件模板在具体的环境需要用脚本替换配置,这一般运用在部署脚本上,根据当前环境的配置信息对配置文件的一些配置信息进行替换;
  • 批量替换和处理一些文本信息;
  • 格式化文本的内容,这个可以和awk配合使用。比如去掉html标签,提取有用信息;

1. 语法描述

sed 命令行的基本格式如下:

代码语言:txt
AI代码解释
复制
sed [option] 'script' file1 file2 ...
sed [option] -f scriptfile file1 file2 ..

发现这个和awk的命令一模一样,现在理解起来也比较容易,sed命令常见的参数如下:

  • -n 默认情况下,模式空间中的内容在处理完成后将会打印到标准输出,该选项可以让其不打印,相当于静默模式;
  • -e 指定要执行的命令,使用该参数,我们可以指定多个命令
  • -f 指定包含要执行的命令的脚本文件

2. 执行流程

首先 sed 命令也是一行行处理文本的,为每一行执行相应的命令,最后输出。

@sed执行流程|center
@sed执行流程|center

3. 命令基础格式

sed处理的文件既可以由标准输入重定向得到,也可以当命令行参数传入,命令行参数可以一次传入多个文件,sed会依次处理,编辑命令的基础格式其实和awk很像,依然是由 patternaction 组成,其中 pattern 来匹配,action 来进行编辑操作。

sed [option] '/pattern/action'

注意:命令需要用单引号或者双引号引起来号; 注意:当你的命令中字符需要用到单引号时,是无法通过 '\' 来转义的,此时使用命令用双引号引起来即可。 注意:用到正则时需要用 '/' 进行标记

举个例子

代码语言:txt
AI代码解释
复制
# 文件内容来自网上一个教程
shell> cat sed.txt
This is my cat
  my cat's name is betty
This is my dog
  my dog's name is frank
This is my fish
  my fish's name is george
This is my goat
  my goat's name is adam

shell> sed 's/This/That/g' sed.txt 
That is my cat
  my cat's name is betty
That is my dog
  my dog's name is frank
That is my fish
  my fish's name is george
That is my goat
  my goat's name is adam

首先命令模块就是 s/This/That/g , 用过 vim替换的一定会感觉到很熟悉,也大致会猜到将 以行为单位处理,将文本中每行出现的 “This” 换成 “That”,我们先拆分下命令格式,先熟悉命令格式,记住就好,至于为什么,后面会有阐述。

  • s 表示文本操作命令 - 替换,诸如此命令的还有好多,下面会说到
  • /This/ 就是正则匹配了,表示该行匹配到的才进行后面的 action,记住一定要在 '/' 符号之间,当然你可以有多个正则匹配,后面也会说到用法;
  • That/g 将前面全词匹配到的替换成 ‘That’, 另外 /g 代表的是所有,后面会介绍到使用其它命令来控制替换哪些。
  • 上面的命令处理后输出到终端,并没有改变实际文件。

从一个简单的替换开始

命令格式

[address1[,address2]]s/pattern/replacement/[flags]

  • sed在匹配前可以指定针对哪些行,这些行的指定你可以直接使用数字,也可以通过匹配得到,address 就是来指定行范围;
  • pattern 模式匹配,也就是核心的正则表达式;后面业务中发现大部分时间都是在这里纠结。
  • flags 替换时的功能选项

1. address 控制范围的行寻址

行范围控制通常有两种,一种通过最直接的数字,另外一种通过匹配命令。先看例子:(为了更清晰的看到行寻址的结果,下面的例子将替换换成将行寻址的内容打印出来)

代码语言:txt
AI代码解释
复制
shell> cat line.txt
1 line
2 line
3 line
4 line
5 line
6 line
7 line
8 line
代码语言:txt
AI代码解释
复制
shell> sed -n '3p' line.txt
3 line
  • 3p 打印第三行,p 功能为打印
  • -n 表示静默模式,一般sed都有把所有读到的行打印出来,如果不加这个参数,它将一行行打印读到的,并且由于 3p 会重复打印第三行;

使用 $ 符号来表示最后一行

代码语言:txt
AI代码解释
复制
# 打印最后一行
shell> sed -n '$p' line.txt
8 line

# 打印从某行开始到最后一行
 sed -n '6,$p' line.txt
6 line
7 line
8 line

使用 + 操作符来间接寻址,表示从某行开始向下多少行

代码语言:txt
AI代码解释
复制
# 打印第三行及下面2行
shell>  sed -n '3,+2p' line.txt
3 line
4 line
5 line

使用 ~ 指定地址范围,它使用M~N的形式,它告诉SED应该处理M行开始的每N行。例如,50~5匹配行号50,55,60,65等。

代码语言:txt
AI代码解释
复制
# 打印奇数行
shell> sed -n '1~2 p' line.txt  
1 line
3 line
5 line
7 line

使用正则表达式匹配指定的行,注意必须用正斜杠将正则表达式封起来

代码语言:txt
AI代码解释
复制
shell> sed -n '/2/p' line.txt
2 line

正则匹配指定行可以和 数字,+ 组合使用

代码语言:txt
AI代码解释
复制
# 和数字使用
shell> sed -n '/2/,3p' line.txt
2 line
3 line

# 和 + 号使用
shell> sed -n '/2/,+3p' line.txt
2 line
3 line
4 line
5 line 

可以指定两个正则匹配来确定行范围,两个正则之间用逗号分隔,它表示选定两个匹配之间的行

代码语言:txt
AI代码解释
复制
shell>  sed -n '/2/,/5/p' line.txt
2 line
3 line
4 line
5 line

2. pattern 核心的正则匹配

sed的核心就是在于怎么玩正则表达式,这里列出一些简单的使用方法。

  • ^ 表示一行的开头。如:/^#/ 以#开头的匹配。
  • $ 表示一行的结尾。如:/}$/ 以}结尾的匹配。
  • \< 表示词首。 如:\<abc 表示以 abc 为首的詞。
  • \> 表示词尾。 如:abc\> 表示以 abc 結尾的詞。
  • . 表示任何单个字符。
  • * 表示某个字符出现了0次或多次。
  • [ ] 字符集合。 如:[abc] 表示匹配a或b或c,还有 [a-zA-Z] 表示匹配所有的26个字符。如果其中有^表示反,如 [^a] 表示非a的字符

举个例子,经常用的去掉html的tags

代码语言:txt
AI代码解释
复制
shell> cat html.txt
<b>This</b> is what <span style="text-decoration: underline;">I</span> meant. Understand?
shell> sed 's/<[^>]*>//g' html.txt
This is what I meant. Understand?
  • s 表示替换
  • /<[^>]*>/ 为正则,表示匹配 < 开始,后面出现0个或者多个非 >字符后,再以 > 结尾,把这匹配到的内容替换成空。

3. flag 帮助我们更好的针对行处理时的功能选项

这里所说的就是上面命令格式的 flag 部分,上面很多例子发现匹配的后面都有个 /g 表示改行出现的所有匹配内容都进行替换。如果不指定 flag 将默认只对改行匹配到的第一个做更改。

除此之外se还提供了其它几个命令

  • 数字n,表示只更改该行匹配到的第n个
  • p 只输出匹配到的行,再行寻址里面已经用过
  • w 存储改变的行到文件,比如sed -n 's/i/I/w junk.txt' books.txt
  • i 匹配时忽略大小写

除了替换还有哪些功能

其实sed能做的事很专注,它的强大依赖于你的正则,你可以通过各种正则技巧解决你各种奇葩问题。

上面例子看到一个 s 命令,这些命令也对应了sed的各个功能。

1. 插入 i

命令格式:[address1[,address2]]i Insert text

例如再第一行前插入一行 "This is test file!"

代码语言:txt
AI代码解释
复制
shell> sed '1i This is test file!' sed.txt  
This is test file!
This is my cat
  my cat's name is betty
This is my dog
  my dog's name is frank
This is my fish
  my fish's name is george
This is my goat
  my goat's name is adam
  • 上面的 1i 就是说明再第一行之前

想想前面指定行范围,这里命令行的 address 是不是也可以像上面一样的功能。例如下面的例子就是匹配到 fish 字符后下面三行,每行前面增加 ------------!

代码语言:txt
AI代码解释
复制
sed '/fish/,+3i ------------!' sed.txt
This is my cat
  my cat's name is betty
This is my dog
  my dog's name is frank
------------!
This is my fish
------------!
  my fish's name is george
------------!
This is my goat
------------!
  my goat's name is adam
  • 上面发现sed就是这么灵活,很多前面看到的东西可以拿来自由组合
  • 注意:当匹配到第一个 fish 就在下面3行每行之前增加;然后接下来处理的是3行之后的,如果后面还有匹配到的继续执行同样的过程。

这里再举个例子会更清楚,首先我们改了例子的文件内容

代码语言:txt
AI代码解释
复制
shell> cat sed.txt 
This is my cat
  my cat's name is betty
This is my dog
  my dog's name is frank
This is my fish
  my fish's name is george
This is my goat
  my goat's name is adam
This is my cat
  my goat's name is adam
This is my goat
This is my fish
  my fish's name is george

sed '/cat/,+2i ------------!' sed.txt
------------!
This is my cat
------------!
  my cat's name is betty
------------!
This is my dog
  my dog's name is frank
This is my fish
  my fish's name is george
This is my goat
  my goat's name is adam
------------!
This is my cat
------------!
  my goat's name is adam
------------!
This is my goat
This is my fish
  my fish's name is george
  • 这里要说明的是匹配到第一个cat之后,再+2总共三行之前需要插入,其实你发现匹配到cat后的一行也有cat,但并没有继续+2插入,而是相当于匹配的index+2之后继续匹配,往下又匹配到了cat,再执行同样的过程,有点绕,仔细看看例子你就会发现端倪。

2. 追加 a

和插入功能一样,只是再匹配的行后面追加(并不是再本行追加,而是下一行)

代码语言:txt
AI代码解释
复制
shell> sed '/cat/,+2a ------------!' sed.txt
This is my cat
------------!
  my cat's name is betty
------------!
This is my dog
------------!
  my dog's name is frank
This is my fish
  my fish's name is george
This is my goat
  my goat's name is adam

3. 删除 d

由于sed命令是基于行为单位处理的,所以这里也是删除行,而且删除的是模式空间的缓存,只会影响输出,不会影响原来文件,格式如下:

命令格式:[address1[,address2]]d

例如删除匹配到cat的行和其后的2行

代码语言:txt
AI代码解释
复制
shell> sed '/cat/,+2d' sed.txt 
  my dog's name is frank
This is my fish
  my fish's name is george
This is my goat
  my goat's name is adam

4. 行替换 c

命令格式:[address1[,address2]]c Replace text

需要注意的是这里指定的行范围将会被一起替换成一行,而不是每行每行的替换,仔细观察下面的例子,将cat出现的行及后两行全部替换成一行 "replace test"

代码语言:txt
AI代码解释
复制
shell> sed '/cat/,+2c replace test' sed.txt
replace test
  my dog's name is frank
This is my fish
  my fish's name is george
This is my goat
  my goat's name is adam

5. 文件写入命令 w

w 指定是写命令,后面指定文件名,当提供了文件名但是文件不存在的时候它会自动创建,如果已经存在的话则会覆盖原文件的内容。

命令格式 [address1[,address2]]w file

代码语言:txt
AI代码解释
复制
shell> sed '/cat/,+2w w.txt' sed.txt
This is my cat
  my cat's name is betty
This is my dog
  my dog's name is frank
This is my fish
  my fish's name is george
This is my goat
  my goat's name is adam
 shell> cat w.txt 
This is my cat
  my cat's name is betty
This is my dog
  • 上面例子即使是写入,也不会影响终端输出,依然全文本输出,这也是由于模式空间的缓存都会被输出出来的原因
  • 只将匹配到的内容写入新的文件

sed的多行处理功能

前面所看到的sed编辑器命令都是针对单行数据执行操作的,在sed编辑器读取数据流时,它会基于换行符的位置将数据分成行,让后再每行中重复的执行脚本命令。除此之外sed也提供了三种可以多行处理的功能;

1. 加载下一行处理 N

代码语言:txt
AI代码解释
复制
shell> sed 'N; s/\n/,/g' sed.txt
This is my cat,  my cat's name is betty
This is my dog,  my dog's name is frank
This is my fish,  my fish's name is george
This is my goat,  my goat's name is adam

首先该例子将两行变一行,并且用逗号分隔,我感觉这种处理模式更像是读两行放到模式匹配的缓存里,然后再使用命令处理。下面我举个例子来佐证

代码语言:txt
AI代码解释
复制
shell> sed 'N; s/i/I/1' sed.txt
ThIs is my cat
  my cat's name is betty
ThIs is my dog
  my dog's name is frank
ThIs is my fish
  my fish's name is george
ThIs is my goat
  my goat's name is adam

上面的例子是将第一个出现 i 字符换成 I,这里发现第二行出现的i并没有被替换,所以可以理解是将两行读到一起来处理命令的,或者说读了一行什么都不处理,模式空间也不清空,再读一行一起处理,最后处理完清空。

2. 输出多行中的第一行 P

P命令用于输出N命令创建的多行文本的模式空间中的第一行,也就是说读进来两行,仅输出第一行。

代码语言:txt
AI代码解释
复制
shell> sed -n 'N; P' sed.txt
This is my cat
This is my dog
This is my fish
This is my goat

常用命令积累

c++删除注释

代码语言:txt
AI代码解释
复制
$ cat hello.cpp
#include <iostream> 
using namespace std; 
int main(void) 
{ 
   // Displays message on stdout. 
   cout >> "Hello, World !!!" >> endl;  
   return 0; // Return success. 
}

执行下面的命令可以移除注释

代码语言:txt
AI代码解释
复制
$ sed 's|//.*||g' hello.cpp
#include <iostream>
using namespace std;
int main(void)
{

   cout >> "Hello, World !!!" >> endl;
   return 0;
}

模拟grep命令

代码语言:txt
AI代码解释
复制
$ echo -e "Line #1\nLine #2\nLine #3" | grep 'Line #1'
Line #1
$ echo -e "Line #1\nLine #2\nLine #3" | sed -n '/Line #1/p'
Line #1

模拟grep -v命令

代码语言:txt
AI代码解释
复制
$ echo -e "Line #1\nLine #2\nLine #3" | grep -v 'Line #1'
Line #2
Line #3
$ echo -e "Line #1\nLine #2\nLine #3" | sed -n '/Line #1/!p'
Line #2
Line #3

过滤所有的html标签

代码语言:txt
AI代码解释
复制
$ cat html.txt
<html>
<head>
    <title>This is the page title</title>
</head>
<body>
    <p> This is the <b>first</b> line in the Web page.
    This should provide some <i>useful</i> information to use in our sed script.
</body>
</html>                                                                                  
$ sed 's/<[^>]*>//g ; /^$/d' html.txt
    This is the page title
     This is the first line in the Web page.
    This should provide some useful information to use in our sed script.

移除空行

代码语言:txt
AI代码解释
复制
$ echo -e "Line #1\n\n\nLine #2" | sed '/^$/d'
Line #1
Line #2

(欢迎各位对文章中的错误指正,另外如果小伙伴们有好的实例来分享,谢谢各位)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
2 条评论
热度
最新
写的挺好的,就是c++文件中的语法错了
写的挺好的,就是c++文件中的语法错了
回复回复点赞举报
对着急处理文本的需求很实用,差不多30分钟左右基本能用起来。至于后续深入 还是要自己慢慢磨了
对着急处理文本的需求很实用,差不多30分钟左右基本能用起来。至于后续深入 还是要自己慢慢磨了
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
SED 命令简明教程
awk于 1977 年出生,今年 36 岁本命年,sed比awk大 2-3 岁,awk就像林妹妹,sed 就是宝玉哥哥了。所以 林妹妹跳了个Topless,他的哥哥sed坐不住了,也一定要出来抖一抖。
ihoey
2018/10/31
8860
linux文本处理三剑客之sed增删改查
sed处理文本时,先将当前处理的行存储在临时缓冲区中,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。然后处理下一行,这样不断重复,直到文件末尾。
吾非同
2021/12/27
3410
linux文本处理三剑客之sed增删改查
三十分钟学会SED
本文承接之前写的三十分钟学会AWK一文,在学习完AWK之后,趁热打铁又学习了一下SED,不得不说这两个工具真的堪称文本处理神器,谁用谁知道!本文大部分内容依旧是翻译自Tutorialspoint上的入门教程,这次是 Sed Tutorial 一文,内容做了一些删减和补充,增加了一些原文中没有提及到的语法和命令的讲解,并且对原文所有的示例都一一进行了验证,希望本文对大家学习和了解Sed有所帮助。
用户2131907
2019/02/27
1.2K0
Sed 命令详解
sed是stream editor的简称,也就是流编辑器。它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。
Allen Cheng
2018/09/10
1K0
Sed 命令详解
运维工作中sed常规操作命令梳理
sed是一个流编辑器(stream editor),一个非交互式的行编辑器。它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕;接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。在日常的运维工程中,会时常用sed命令来处理行操作,下面根据工作中的使用经验对sed的用法做一梳理: sed(stre
洗尽了浮华
2018/01/22
1.1K0
运维工作中sed常规操作命令梳理
一分钟sed入门(一分钟系列)
1.简介 sed是一种行编辑器,它一次处理一行内容。 2.sed调用方式 sed [options] 'command' file(s) sed [options] -f scriptfile file(s) 第一种直接在命令行中执行,第二种把命令写到了脚本中,二者无本质区别。 示例(1):打印hello.txt的内容 sed -n p hello.txt 说明: -n:sed会在处理一行文本前,将待处理的文本打印出来,-n参数关闭了这个功能 p:命令表示打印当前行 hello.txt:待处理的文件 这个指
架构师之路
2018/03/01
6510
快速理解linux流编辑器sed命令
之前介绍过 awk 命令,sed 命令同样是非常重要的文本处理工具,涉及到linux shell开发时,几乎是避不开这两大利器的 sed 是 stream editor 的简写,是一种非交互式的流编辑器,默认情况下,sed并不会改变原文件本身,而只是对文本流进行修改,并将修改后的结果打印到标准输出中 与awk命令一样,sed处理文本时也是以行为单位,每处理完一行就立即打印出来,然后再处理下一行,直至全文处理结束 sed可做的编辑动作包括删除、查找替换、添加、插入、从其他文件中读入数据等 常用场景
dys
2018/04/03
1.2K0
Shell 编程的老臣 - sed
shell 的世界里有两个好兄弟:sed 和 gawk. 今天先讲其一 sed.
Lenis
2019/12/25
4800
awk 使用教程 - 通读篇(30分钟入门)
很多刚接触awk,sed等命令时,看到帮助文档一堆参数,一堆符号感觉有点慌,我刚开始学习时也出现过这样的问题,这篇文章从我们工作遇到的问题出发,由浅入深,重点在于阐述其工作原理和最常用的用法(覆盖我们工作80%的就很满意了),作为通读性强的文章希望能利用上下班的时间就能看懂,树立一个awk能帮我们解决哪些问题的意识。当然高级用法可以基本本篇给的思路去摸索,另外会不定期的更新使用的例子。
yorkjin
2018/07/17
18.4K0
awk 使用教程 - 通读篇(30分钟入门)
Shell 编程(五):文本三剑客之 Sed
sed(Stream Editor)是一种流编辑器,sed 是对标准输出或文件逐行进行处理。sed 会在编辑器处理数据以前基于预先提供的一组规则来编辑数据流。能够根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中。
高久峰
2023/09/18
2620
Shell 编程(五):文本三剑客之 sed
sed(Stream Editor)是一种流编辑器,sed 是对标准输出或文件逐行进行处理。sed 会在编辑器处理数据以前基于预先提供的一组规则来编辑数据流。能够根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中。
陈大剩博客
2023/02/17
8230
sed命令工作原理及命令备忘
sed是一个非交互式的流编辑器(stream editor)。所谓非交互式,是指使用sed只能在命令行下输入编辑命令来编辑文本,然后在屏幕上查看输出;而所谓流编辑器,是指sed每次只从文件(或输入)读入一行,然后对该行进行指定的处理,并将结果输出到屏幕(除非取消了屏幕输出又没有显式地使用打印命令),接着读入下一行。整个文件像流水一样被逐行处理然后逐行输出。 工作中经常会使用sed命令对文件进行各种操作,之前一直对它的工作原理不是很了解,只不过在网上抄一些命令完成操作,有时遇到了问题,就问一问身边的“脚本小王
jeremyxu
2018/05/10
1K0
sed 保持空间命令之 g、G 的执行逻辑
命令 g(get)把保持空间的内容复制到模式空间。假定当前模式空间内容为“line 1”,保持空间内容为“line 2”,执行命令 g 之后,模式空间内容变为“line 2”,保持空间内容仍然为“line 2”。
用户1148526
2024/07/13
1580
Sed命令的基本使用
该文介绍了sed命令的基本使用,包括打印匹配行、替换匹配行、从文件中读取并写入到输出中等常用用法,以及使用修饰符进行更高级的文本处理。同时还介绍了sed命令的常用选项和例子,以及与其他文本处理工具的对比。
GavinZhou
2018/01/02
1.3K0
干货!上古神器 sed 教程详解,小白也能看的懂
熟悉 Linux 的同学一定知道大名鼎鼎的 Linux 三剑客,它们是 grep、awk、sed,我们今天要聊的主角就是 sed。
用户3105362
2021/02/04
2.6K0
干货!上古神器 sed 教程详解,小白也能看的懂
Linux三剑客老二sed
sed命令是用来批量修改文本内容的,比如批量替换配置中的某个ip。 sed命令在处理时,会先读取一行,把当前处理的行存储在临时缓冲区中,处理完缓冲区中的内容后,打印到屏幕上。然后再读入下一行,执行下一个循环。不断的重复,直到文件末尾。 语法:
机智的程序员小熊
2019/12/12
7940
20 分钟 Shell 入门深度教程
作者:aron1992 来源:https://my.oschina.net/FEEDFACF/blog/1789695 0. 背景 之前写了系列的shell实战的文章,得到了挺多小伙伴的关注,遇到有些对shell不太熟悉小伙伴,所以有个想法写一篇shell入门的文章。 时间流逝,再回头去看看过去的东西,才会发现哪些东西比较重要,故撰此文,记录我在过去学习和使用shell语言过程中我个人觉得比较重要的部分,做一个小总结和分享。 文章中使用到的代码位置:https://gitee.com/dhar/YTTIn
小小科
2018/05/04
1.4K0
Linux Shell工具篇 - 内容处理工具sed
sed (stream editor, 流编辑器) 是Linux下一款功能强大的非交互流式文本编辑器(vim是交互式文本编辑器),可以对文本文件的每一行数据匹配查询之后进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件的编辑。 sed是一种流编辑器,它一次处理一行内容,将这行放入缓存(存区空间称为:模式空间),然后才对这行进行处理,处理完后,将缓存区的内容发送到终端。
兜兜转转
2023/03/29
1.6K0
Linux Shell工具篇 - 内容处理工具sed
实例详解sed命令行
sed是一种流编辑器,以行为单位进行文本处理,可以将数据行进行替换、删除、新增、选取等操作。
章鱼喵
2019/07/04
5820
linux中sed命令总结
原文:https://wangchujiang.com/linux-command/c/sed.html
入门笔记
2022/06/02
3.5K0
相关推荐
SED 命令简明教程
更多 >
LV.0
腾讯事务开发工程师
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档