DAY 35 sed文本编辑器

这篇具有很好参考价值的文章主要介绍了DAY 35 sed文本编辑器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文本三剑客:都是按行读取后处理。

grep 过滤行内容

awk 过滤字段

sed 过滤行内容;修改行内容

sed编辑器

sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流

sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中

sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等

sed编辑器的工作流程

sed 的工作流程主要包括读取、执行和显示三个过程:

读取: sed从输入流(文件、管道、标准输入)中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space )。
执行:默认情况下,所有的sed 命令都在模式空间中顺序地执行, 除非指定了行的地址,否则sed命令将会在所有的行上依次执行。
显示:发送修改后的内容到输出流(屏幕)。在发送数据后,模式空间将会被清空。在所有的文件内容都被处理完成之前,上.述过程将重复执行,直至所有内容被处理完。
在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完。

注意:默认情况下所有的sed命令都是在模式空间内执行的,因此输入的文件并不会发生任何变化,
除非是用重定向存储输出或者sed -i.

sed命令格式

 
sed -e  '操作' 文件1 文件2..
 
sed -n -e '操作1;操作2' 文件1 文件2 ..
 
sed -f  脚本文件  文件1  文件2 ...
 
sed -i -e  '操作' 文件1 文件2 ...
sed  -e  'n {
  操作1
  操作2
}'  文件1  文件2 ...

常用选项

选项 作用
-e 或--expression= 表示用指定命令来处理输入的文本文件,只有一个操作命令时可省略,一般在执行多个操作命令使用
-f 或--file= 表示用指定的脚本文件来处理输入的文本文件
-h或--help 显示帮助
-n、--quiet或silent 禁止sed编辑器输出,但可以与p命令一起使用完成输出
-r sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)
-i 直接修改目标文本文件

常用操作

操作 作用
s 替换,替换指定字符
d 删除,删除选定的行
a 增加,在当前行下面增加一行指定内容
i 插入,在选定行上面插入一行指定内容
c 替换,将选定行替换为指定内容
y 字符转换,转换前后的字符长度必须相同
p 打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容;如果有非打印字符,则以ASCII码输出。其通常与"-n"选项一起使用。
= 打印行号
l(小写l) 打印数据流中的文本和不可打印的ASCII字符(比如结束符$、制表符\t)

sed -p  打印

DAY 35 sed文本编辑器 sed -n:禁止sed编辑器输出

DAY 35 sed文本编辑器 操作‘=’:打印行号

 操作 ‘l’:打印数据流中的文本和不可打印的ASCII字符

DAY 35 sed文本编辑器

 sed -e 多个操作

sed -n -e '命令1' -e '命令2' 文件
或者
sed -n -e '命令1;命令2' 文件
或者
sed -n '
命令1 
命令2
....
' 文件

DAY 35 sed文本编辑器

 也可以合并

DAY 35 sed文本编辑器

 或者使用换行打印文件内容

DAY 35 sed文本编辑器

 sed对指定行进行操作

以数字形式表示行区间

用文本模式(字符串)来过滤出行(一般结合正则表达式)以数字形式表示行区间

操作 含义
'1p' 打印第一行
'$p' 打印最后一行
'1,3p' 打印连续行,打印第一行到第三行
'6,$p' 打印第六行到最后一行
'1,+3p' 打印第一行加后面三行(即打印第一到第四行)
'5q' 打印前五行后退出
'p;n' 打印奇数行
'n;p' 打印偶数行

使用字符串匹配出行:

操作 含义
'/root/p' 打印包含root的行
'/root/!p' 打印不包含root的行。! 表示取反
'/^root/p' 打印以root开头的行
'/bash$/' 打印以bash结尾的行
'/root l bash/p' 打印包含root或bash的行。"l"是扩展正则表达式的元字符,要使用sed -r
'6,/root/p' 打印第6行到第一个包含root的行

 以数字形式表示行区间

打印单行

DAY 35 sed文本编辑器

 打印连续的行

DAY 35 sed文本编辑器

 打印第一行和后面3行 (1-4)

DAY 35 sed文本编辑器

 打印第1-5行的方法

DAY 35 sed文本编辑器

 还有一种也能算是

DAY 35 sed文本编辑器

 使用sed输出奇数行或者偶数行

DAY 35 sed文本编辑器

 打印除了第一行以外的奇数行

DAY 35 sed文本编辑器

 使用正则表达式,匹配行内容

注意:sed 使用扩展正则表达式时,要加 -r 

DAY 35 sed文本编辑器

DAY 35 sed文本编辑器

 sed -r 支持扩展正则表达式,同时在 使用{n}、{n,}、{n,m}时,括号{}前不需要加反斜杠\

DAY 35 sed文本编辑器

DAY 35 sed文本编辑器

删除指定行

sed 'd'

DAY 35 sed文本编辑器

DAY 35 sed文本编辑器

 sed '/#/,/@/d' 文件名

sed会读取每行的内容,从第一个位置#打开删除功能,到第二位置@删完后关闭删除功能,再继续查询与  #和@匹配的行 进行删除 一直重复此操作

DAY 35 sed文本编辑器

 替换

字符串

行范围  s/旧字符串/新字符串/替换标记

替换标记

替换标记 作用
数字 表明新字符串将替换第几处匹配的地方
g 表明新字符串将会替换所有匹配的地方
p 打印与替换命令匹配的行,与-n一起使用
w文件 将替换的结果写到文件中

sed -g

sed -s

DAY 35 sed文本编辑器

 替换命令的分隔符看 s后面跟的字符,3个分隔符要保持一致,如果遇到跟分隔符相同的字符则需要使用"\"来转义

将/bin/bash 转换为 /sbin/nologin

因为替换的格式为 s/旧/新  此处的"/"为分隔符 但是/bin/bash与/sbin/nologin中的"/"为根,容易引起歧义

可以使用"\"转义字符将"/"转义为普通字符

DAY 35 sed文本编辑器

 或者使用其他字符作为分隔符,且所有分隔符保持一致(s后面的内容就是分隔符)

DAY 35 sed文本编辑器

 注释行内容

将root开头的行进行注释(在开头加上#)

在包含root的行的行尾加上#

DAY 35 sed文本编辑器

 DAY 35 sed文本编辑器

 删除

DAY 35 sed文本编辑器

 整行替换

使用c进行替换,是对整行内容进行替换

sed '#c 新内容 文件名     #替换第#行的全部内容
或者
sed '/旧内容/c  新内容' 文件名       #将被筛选到(含有旧内容)的行替换为新内容

DAY 35 sed文本编辑器

 单字符替换 y

使用y,是对单个字符进行替换,每个字符需要一一对应,不是整体替换,前后字符串长度需要一致,不然会报错

DAY 35 sed文本编辑器

 增加(插入)内容

行前插入

DAY 35 sed文本编辑器

 在行后插入内容

DAY 35 sed文本编辑器

 插入文件内容

DAY 35 sed文本编辑器

 剪切粘贴

DAY 35 sed文本编辑器

 调换顺序

DAY 35 sed文本编辑器

 文章来源地址https://www.toymoban.com/news/detail-418056.html

到了这里,关于DAY 35 sed文本编辑器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux文本处理工具sed(流编辑器)

    sed是一种流编辑器,它一次处理一行内容。 处理时,把当前处理的行存储在临时缓冲区(模式空间)中,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送到屏幕。接着处理下一行,这样不断重复直到文件末尾。 文件内容并没有改变 ,除非你使用重定向存

    2024年02月12日
    浏览(64)
  • Shell编程基础(十五)文本三剑客(sed)

    sed提供了一种免交互的方式修改文件内容。 它是一行一行处理,可以通过正则匹配要修改的部分 基本语法 sed [-opt] command files(多个文件 空格隔开) sed 使用扩展正则,不加r不能完全匹配扩展正则表达式 sed -r “正则匹配数据行/指定行号 sed命令” files sed 修改内容写回文件 默认

    2024年02月13日
    浏览(42)
  • Linux文本三剑客---grep、sed、awk

    awk、grep、sed是linux操作文本的三大利器,三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂。grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理。 1、grep 1.1 命令格式 1.2命令功能

    2024年02月14日
    浏览(50)
  • linux文本三剑客---grep,sed,awk

    目录 grep 什么是grep? grep实例演示 命令参数: 案例演示: sed 概念:  常用选项: 案例演示: awk 概念: awk常用命令选项: awk变量: 内置变量 自定义变量 awk的简单案例 在“a b c d”的d后面插入三个字符 统计tcp连接状态数量  统计日志中状态码非200的IP的次数 什么是grep?

    2024年02月13日
    浏览(54)
  • Linux文本三剑客(grep、sed、awk)

    目录 grep 1、什么是grep和rgrep? 2、使用grep 2.1、命令格式 2.2、命令功能 2.3、命令参数 3、实战演示 sed 1、认识sed 2、使用sed 2.1、命令格式 2.2、常用选项options 2.3、地址定界 2.4、编辑命令command 3、sed用法演示 3.1、常用选项用法演示 3.2、sed地址定界演示 3.3、编辑命令command演示

    2024年02月03日
    浏览(48)
  • Linux 文本处理三剑客:grep、sed 和 awk

    awk、grep、sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一。三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂。grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较

    2024年01月17日
    浏览(56)
  • Linux:管道命令与文本处理三剑客(grep、sed、awk)

    众所周知,bash命令执行的时候会输出信息,但有时这些信息必须要经过几次处理之后才能得到我们想要的格式,此时应该如何处置?这就牵涉到 管道命令(pipe) 了。管道命令使用的是 | 这个界定符号。另外,管道命令与连续执行命令是不一样的,这点下面我们会说明。 我们先

    2023年04月18日
    浏览(49)
  • Sed编辑器

    目录 sed编辑器 命令格式: 常用选项: 常用操作: 打印内容: 使用地址: ​编辑 替换:  插入: sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,

    2024年02月05日
    浏览(75)
  • sed编辑器基础命令

    shell脚本编程系列 学习sed编辑器 sed编辑器被称作流编辑器(stream editor),与普通的交互式文本编辑器不同,在交互式文本编辑器可以用键盘命令交互式插入、删除或替换文本数据。流编辑器则是根据事先设计好的一组规则编辑数据流。 sed编辑器主要操作 从输入中读取一行数

    2024年02月01日
    浏览(34)
  • Shell脚本基础( 四: sed编辑器)

    目录 1 简介 1.1 sed编辑器的工作流程 2 sed 2.1 基本用法  2.2 sed基本格式 2.2.1 sed支持正则表达式 2.2.2 匹配正则表达式 2.2.3 奇数偶数表示 2.2.4 -d选项删除 2.2.5 -i修改文件内容 2.2.6  -a 追加 2.3 搜索替代 2.4 变量 sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供

    2024年02月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包