我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux基础命令---文本编辑sed

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux基础命令---文本编辑sed

sed

sed是一种流编辑器,用来从输入流中读取内容并完成转换,输入流可以来自一个文件,也可以来自一个管道。

此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法

sed [选项]  file

 

2、选项列表

选项

说明

--version

显示命令版本信息

--help

显示帮助文档

-n | --quite | --slient

静默模式

-e | --expression=script

给指令添加脚本

-f | --file=script-file

将文件内容作为脚本,追加给指令

--follow-symlinks

处理到位时遵循符号链接;硬链接仍将被破坏。

-i[SUFFIX]  |  --in-place[=SUFFIX]

编辑文件到位(如果提供了扩展名,则进行备份)。默认的操作模式是中断符号链接和硬链接。这可以通过跟随符号链接和复制来改变。

-c  |  --copy

当在-i模式下对文件进行洗牌时,请使用复制而不是重命名。虽然这将避免断开链接(符号或硬链接),但结果的编辑操作并不是原子操作。这很少是想要的模式;-遵循符号链接通常就足够了,而且它更快、更安全。

-l | --line-length=N

指定每一行最大字符数,超过就自动换行

--posix

禁用所有的GNU表达式

-r | --regexp-extended

在脚本中使用扩展正则表达式。

-s

将文件看作是分离的,而不是单独连续的长字符串

-u | --unbuffered

从输入文件中加载最少数量的数据,并更频繁地刷新输出缓冲区。

如果没有给出-e、--expression,、-f或-file选项,那么第一个非选项参数将作为sed脚本进行解释。其余的参数都是输入文件的名称;如果没有指定输入文件,则读取标准输入。

 

命令

说明

没有地址的命令


: label

b和t命令的标签

#comment

注释将扩展到下一行(或-e脚本片段的末尾)。

}

{}块的结束括号

没有地址或者一个地址的命令


=

打印当前的行号

a \

text

追加文本,在换行符之前有一个嵌入的反斜杠

i \

text

插入文本,在换行符之前有一个嵌入的反斜杠

q [exit-code]

立即退出sed脚本,而不处理任何更多的输入,除非自动打印没有被禁用,当前的模式空间将被打印出来。退出代码参数是一个GNU扩展。

Q [exit-code]

立即退出sed脚本,而不处理任何更多的输入。这是一个GNU扩展

r filename

附加从文件中读取的文本。

R filename

附加从文件读取的一行。命令的每次调用都从文件中读取一行。

接受地址范围的命令


{

开始一个命令块(以)结尾)

b label

分支到标签;如果省略标签,则分支到脚本的末尾。

t label

如果“s///”自读取上一个输入行以来以及从最后一个t或T命令开始已成功地进行了替换,则从“分支到标签”;如果省略“标签”,则将其分支到脚本的末尾。

T label

如果自读取上一个输入行以来,以及自最后一个t或T命令以来,没有“s///”已成功地进行了替换,则从“分支到标签”;如果省略“标签”,则从“分支到脚本的末尾”。这是一个GNU扩展。

c\

text

用文本替换徐那种的行,在换行符之前有一个嵌入的反斜杠

d

删除模式空间。开始下一个周期。

D

删除模式空间中的第一个嵌入换行符。开始下一个周期,但如果模式空格中仍然有数据,则跳过从输入中读取。

h H

复制/追加模式空间到保持空间

g G

复制/追加保持空间到模式空间

x

交换持有空格和模式空格的内容

l

以“视觉清晰”的形式列出当前行。

l width

以“视觉清晰”的形式列出当前行,在宽度width处将其拆分。这是一个GNU扩展。

n N

在模式空间中读取/追加下一行输入

p

打印到当前模式空间

P

打印到当前模式空间的第一个嵌入换行符

s/regexp/replacement/

尝试将regexp与模式空间匹配。如果成功,则将该部分替换为替换部分。替换可以包含特殊字符&引用匹配的模式空间的那一部分,特殊转义\1到\9引用regexp中相应的匹配子表达式。

w filename

将当前模式空间写入文件名

W filename

将当前模式空间的第一行写入文件名。这是一个GNU扩展。

y/source/dest/

将在源中出现的模式空间中的字符音译为dst中相应的字符。

 

3、地址

SED命令可以在没有地址的情况下给出,在这种情况下,命令将对所有输入行执行;使用一个地址,则只对与该地址匹配的输入行执行该命令;或者使用两个地址,在这种情况下,将对所有与从第一个地址开始并继续到第二个地址的包含行范围匹配的输入行执行命令。关于地址范围,需要注意三件事:语法是addr 1,addr 2(即地址用逗号分隔);addr 1匹配的行将始终被接受,即使addr 2选择了前面的行;如果addr 2是regexp,则不会根据addr 1匹配的行对其进行测试。

在地址(或地址范围)之后,在命令之前,可以插入一个“!”,这指定只有当地址(或地址范围)不匹配时才执行命令。支持以下的地址类型“

number,只匹配指定的行号。

first~step,从指定的行first开始,每step行匹配一次。

$,匹配最后一行。

/regexp/,匹配正则表达式regexp的行。

\cregexpc,匹配正则表达式regexp的行。c可以是任何字符

0,addr2,从“匹配的第一个地址”状态开始,直到找到addr 2为止。这类似于1,addr 2,但如果addr 2匹配输入的第一行0,addr 2表单将位于其范围的末尾,而1,addr 2窗体仍将位于其范围的开头。这只在addr 2是正则表达式时才起作用。

addr1,+N,将匹配addr 1和addr 1后面的N行。

addr1,~N,将匹配addr 1和addr 1后面的行,直到输入行号为N的倍数的下一行为止。

 

4、实例

从一个文件读取内容输入到另一个文件

[root@192 weijie]# cat 1.c                      //查看文件内容

hello world, 

i am david. 

i love linux, 

love code.

nihao ed

[root@192 weijie]# sed r 1.c >> 2.c           //1.c读取,写入到2.c

[root@192 weijie]# cat 2.c                      //查看内容

123

23

212

hello world, 

i am david. 

i love linux, 

love code.

nihao ed

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux基础命令---文本编辑sed

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux基础命令---文本编辑sed

sedsed是一种流编辑器,用来从输入流中读取内容并完成转换,输入流可以来自一个文件,也可以来自一个管道。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法sed [选项
2023-06-05

如何理解Linux基础命令中文本流编辑sed命令

如何理解Linux基础命令中文本流编辑sed命令,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。与vim不同,sed是一种非交互式的文本编辑器,同时它又是面向字符流的,每行数
2023-06-16

Linux基础命令---tail显示文本

tail显示文本文件尾部的部分内容,默认显示最后10行。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法tail [选项] file 2、选项列表选项说明--vers
2023-06-05

linux中如何使用Sed文本编辑器

这篇文章给大家分享的是有关linux中如何使用Sed文本编辑器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Sed 缺少通常的文本框,而是按照用户的命令直接写入到文件上。sed 命令是为 AT&T 最初的 Uni
2023-06-15

Linux 常用文本处理命令和vim文本编辑器

今天,来介绍几个常用文本处理命令和vim文本编辑器 day3--常用文本处理命令和vim文本编辑器col,用于过滤控制字符,-b过滤掉所有控制字符,这个命令并不常用,但可以使用man 命令名| col -b >help.txt 导出一份帮助
2022-06-04

Linux使用文本编辑器vi常用命令

vi/vim是什么?Linux世界几乎所有的配置文件都是以纯文本形式存在的,而在所有的Linux发行版系统上都有vi编辑器,因此利用简单的文字编辑软件就能够轻松地修改系统的各种配置了,非常方便。vi就是一种功能强大的文本编辑器,而vim则是
2022-06-04

实战基本的Linux sed命令示例代码

linux流编辑器是在数据中心中运行脚本的一种有用方法。通过这些命令示例,您可以开始熟悉sed。 想要修改文件而不覆盖原始文件的Linux管理员有很多选择,但最有效的工具之一是流编辑器 - sed。 流编辑器是大多数Linux发行版的默认部
2022-06-04

linux文本分析awk基础命令介绍(8)

awk是一种模式扫描和处理语言,在对数据进行分析处理时,是十分强大的工具。 awk [options] 'pattern {action}' file...awk的工作过程是这样的:按行读取输入(标准输入或文件),对于符合模式pattern
2022-06-04

linux文本过滤grep基础命令介绍(5)

在linux中经常需要对文本或输出内容进行过滤,最常用的过滤命令是grep grep [OPTIONS] PATTERN [FILE...] grep按行检索输入的每一行,如果输入行包含模式PATTERN,则输出这一行。这里的PATTERN
2022-06-04

Linux中如何使用sed文本处理命令

Linux中如何使用sed文本处理命令,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。sed对文本的处理很强大,并且sed非常小,参数少,容易掌握,他的操作方式根awk有点像。s
2023-06-12

Linux下如何使用sed命令切割文本

这篇文章主要介绍了Linux下如何使用sed命令切割文本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。sed是一个流(stream)编辑器,每次读取文本中的一行,放到内存的缓
2023-06-27

详解Linux常用命令的用法(二)————文本编辑器命令vi/vim

vi/vim介绍 它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。 1、vi和vim的区别: 就是在进入一般命令模式后,当按下(i、I、o、O、a、A、r、R)等任www.cpp
2022-06-04

linux编辑文件的命令有哪些

这篇文章将为大家详细讲解有关linux编辑文件的命令有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。linux中编辑文件的命令是:1、nano命令,该命令用于打开指定文件进行编辑,语法为“nano [
2023-06-29

Linux基础命令---lpr打印文件

lprlpr指令用来打印文件,如果没有指定文件名,那么从标准输入读取内容。CUPS提供了许多设置默认目标的方法。首先查询“LPDEST”和“PRINTER”环境变量。如果没有设置,则使用lpoptions(1)命令的当前默认集,然后使用lp
2023-06-05

Linux基础命令---验证组文件grpck

grpckgrpck指令可以验证组文件“/etc/group”和“/etc/gshadow”的完整性。检查的内容包括:正确的字段数、唯一有效的组名称、有效的组标识符、成员和管理员的有效列表、“/etc/gshadow”文件中的相应条目。检查
2023-06-05

Linux中使用文本编辑器vi命令的示例分析

小编给大家分享一下Linux中使用文本编辑器vi命令的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!vi/vim是什么?Linux世界几乎所有的配置文件都
2023-06-09

【Linux】—一文掌握Linux基本命令(上)

目录 lspwdcdtouchmkdirrmdir与rmmantree 的安装cpmvnano的安装cat ls 语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名
2023-08-19

一天一个shell命令 linux文本内容操作系列-sed命令详解

说明: sed是stream editor(流编辑器)的缩写。它能够完美匹配正则表达式。sed和awk是文件编辑最重要的两个命令了。尤其涉及到了很多正则表达式的问题,笔者不敢也有点犯怵,试着写写。 实例: 1.替换文件中的字符串 $sed
2022-06-04

编程热搜

目录