首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

脚本中的Sed命令,用于查找字符串(如果存在),否则追加新字符串

Sed命令是一种流编辑器,用于在文本中进行字符串查找和替换操作。它可以在脚本中使用,以便在特定条件下查找字符串并进行相应的处理。

Sed命令的基本语法如下:

代码语言:txt
复制
sed 's/要查找的字符串/要替换的字符串/g' 文件名

其中,s/要查找的字符串/要替换的字符串/g是Sed命令的替换模式。如果要查找的字符串存在于文件中,Sed命令将其替换为指定的字符串;如果要查找的字符串不存在,Sed命令将在文件末尾追加新的字符串。

下面是Sed命令的一些常用选项和示例:

  1. -i:直接修改文件内容,而不是输出到终端。
代码语言:txt
复制
sed -i 's/要查找的字符串/要替换的字符串/g' 文件名
  1. -e:允许同时执行多个Sed命令。
代码语言:txt
复制
sed -e 's/要查找的字符串/要替换的字符串/g' -e 's/另一个要查找的字符串/另一个要替换的字符串/g' 文件名
  1. -n:只打印经过Sed命令处理后的行。
代码语言:txt
复制
sed -n 's/要查找的字符串/要替换的字符串/gp' 文件名
  1. 使用正则表达式进行模式匹配。
代码语言:txt
复制
sed 's/正则表达式/要替换的字符串/g' 文件名

Sed命令的应用场景包括但不限于:

  • 批量替换文本中的字符串。
  • 格式化文本文件。
  • 提取文本中的特定内容。
  • 删除文本中的空行或特定行。
  • 对文本进行排序、去重等操作。

腾讯云提供了云服务器(CVM)产品,可用于部署和运行脚本,并使用Sed命令进行字符串查找和替换操作。您可以通过以下链接了解更多关于腾讯云云服务器的信息: 腾讯云云服务器产品介绍

请注意,以上答案仅供参考,具体的使用方法和推荐产品可能因实际需求和环境而异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Sed三剑客入门与进阶

c 把选定行改为文本(类似于替换)。 d 删除选择行 D 删除模板块第一行 s 替换指定字符 h 拷贝模板块内容到内存缓冲区。 H 追加模板块内容到内存缓冲区。...l 打印显示特殊字符(行尾以及tab标志) n 读取下一个输入行,用下一个命令处理行而不是用第一个命令。 N 追加下一个输入行到模板块后面并在二者间嵌入一个行,改变当前行号码。...p 显示打印模板块行。 P(大写) 打印模板块第一行。 q 退出Sed。 b lable 分支到脚本带有标记地方,如果分支不存在则分支到脚本末尾。 r file 从file读行。...Sed对于脚本输入命令非常挑剔,在·命令末尾不能有任何空白或文本,如果在一行中有多个命令,要用分号分隔`以#开头行为注释行,且不能跨行。...从文件读入:r命令 描述:file里内容被读进来,显示在与test匹配行后面,如果匹配多行,则file内容将显示在所有匹配行下面 #示例1.读取file文件到并且插入到查找到test字符串后面

3.1K10

Linux系统开发: 学习linux三剑客(awk、sed、grep)(上)

,导致如果是写一些脚本就会很不方便,这个时候就需要sed和awk这样工具来实现。...n 读取下一个输入行,用下一个命令处理行而不是用第一个命令。 N 追加下一个输入行到模板块后面并在二者间嵌入一个行,改变当前行号码。 p 打印模板块行。...前面可加数字,指定打印第几行 P(大写) 打印模板块第一行。 q 退出Sed。 b lable 分支到脚本带有标记地方,如果分支不存在则分支到脚本末尾。 r file 从file读行。...T label 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号命令处,或者到脚本末尾。 w file 写并追加模板块到file末尾。...y 表示把一个字符翻译为另外字符(但是不用于正则表达式) \1 子串匹配标记 & 已匹配字符串标记 3.6 元字符集 ^ 匹配行开始,如:/^sed/匹配所有以sed开头行。

9.3K21
  • Sed..

    b lable # 分支到脚本带有标记地方,如果分支不存在则分支到脚本末尾。 r file # 从file读行。...y # 表示把一个字符翻译为另外字符(但是不用于正则表达式) \1 # 子串匹配标记 & # 已匹配字符串标记 sed元字符集 ^ # 匹配行开始,如:/^sed/匹配所有以sed开头行。...在sed处理文件时候,每一行都被保存在一个叫模式空间临时缓冲区,除非行被删除或者输出被取消,否则所有被处理行都将 打印在屏幕上。...第二条语句意思是,当到达最后一行后,G命令取出保持缓冲区行,然后把它放回模式空间中,且追加到现在已经存在于模式空间中末尾。在这个例子中就是追加到最后一行。...Sed对于脚本输入命令非常挑剔,在命令末尾不能有任何空白或文本,如果在一行中有多个命令,要用分号分隔。以#开头行为注释行,且不能跨行。

    1.6K20

    sed & awk 第二版学习(五)—— 高级 sed 命令

    sed 脚本中正常控制流为:一行被读入模式空间并用脚本每个命令逐个应用于那一行;当到达脚本底部时,输出这一行并且清空模式空间;然后行被读入模式空间,并且控制被转移回脚本顶端。...它不会导致读入输入行,而是返回到脚本顶端,将这些指令应用于模式空间剩余内容。下面的例子查找一系列空行并输出单个空行,分别使用删除命令(d)和多行删除命令(D)实现,以示区别。...第一行匹配模式 UNIX$ 后,N 命令将一个输入行追加到模式空间的当前行。在替换命令用于多行模式空间之后,模式空间第一部分被 P 命令输出,然后被 D 命令删除。...该 sed 脚本在三个不同点尝试匹配搜索字符串,每一个都标有用于查找搜索模式地址。...(这个脚本貌似不错,逻辑也很清晰。但是,最初需求是要找出所有匹配某个字符串所有行,包括跨行匹配。如果以满足这个需求来衡量,该脚本存在很大缺陷,甚至可以说根本不成立。)

    11410

    linuxsed命令总结

    b lable # 分支到脚本带有标记地方,如果分支不存在则分支到脚本末尾。 r file # 从file读行。...y # 表示把一个字符翻译为另外字符(但是不用于正则表达式) \1 # 子串匹配标记 & # 已匹配字符串标记 sed元字符集 ^ # 匹配行开始,如:/^sed/匹配所有以sed开头行。...h命令和G命令sed处理文件时候,每一行都被保存在一个叫模式空间临时缓冲区,除非行被删除或者输出被取消,否则所有被处理行都将 打印在屏幕上。...第二条语句意思是,当到达最后一行后,G命令取出保持缓冲区行,然后把它放回模式空间中,且追加到现在已经存在于模式空间中末尾。在这个例子中就是追加到最后一行。...Sed对于脚本输入命令非常挑剔,在命令末尾不能有任何空白或文本,如果在一行中有多个命令,要用分号分隔。以#开头行为注释行,且不能跨行。

    3.2K20

    一篇文章学会shell工具篇之sed

    sed叫做流编辑器,在shell脚本和Makefile作为过滤器使用非常普遍,也就是把前一个程序输出引入sed输入,经过一系列编辑命令转换成为另一种格式输出。...下面总结一下sed参数选择及执行操作: [plain] view plain copy 参数选择: -n:一般sed命令会把所有数据都输出到屏幕,如果加入-n选项的话,则只会把经过...-e:允许对输入数据应用多条sed命令编辑。 -i:将修改结果直接写入到读取数据文件,而不是由屏幕输出。(1.修改了文件; 2.由cat可查看) -f: 指定sed脚本文件名。...s:字符串替换,用一个字符串替换另外一个字符串。格式为”行范围s/旧字符串/新字符串/g”(如果不加g的话,则表示只替换每行第一个匹配串)。... 以上没有练习到,有兴趣可以去尝试尝试! 3.再来介绍一下sed定址 定址用于决定对文件哪些行进行行编辑,地址形式可以是数字、正则表达式、或二者结合。

    97070

    sed & awk 第二版学习(四)—— 基本 sed 命令

    最终可以将这个文件作为 sed 脚本来纠正所有文档索引条目。此程序还应该在索引普通文字查找元字符并将其转义为普通字符,这需要使用下篇介绍高级命令。 4....脚本在更改命令之后其它命令不被应用。插入命令追加命令不影响模式空间内容,后续命令不影响该文本,所提供文本也不影响 sed 内部行计数器。 6....在较长脚本,必须记住出现在 n 命令之前命令不会应用于输入行,而且出现在 n 后面的命令不应用于输入行。 11. 读、写文件 读(r)和写(w)命令用于直接处理文件。...写命令将模式空间内容写到 file 如果文件不存在,读命令也不会报错。如果命令中指定文件不存在,将创建一个文件;如果文件已存在,那么写命令将在每次调用脚本时改写它。...如果一个脚本中有多个指令写到同一个文件,那么每个写命令都将内容追加到这个文件。而且,每个脚本最多只能打开 10 个文件。 读命令对于将一个文件内容插入到另一个文件特定位置很有用。

    7210

    【linux命令讲解大全】081.sed:功能强大流式文本编辑器

    b # 分支到脚本带有标记地方,如果分支不存在则分支到脚本末尾。 r # 从file读行。...y # 表示把一个字符翻译为另外字符(但是不用于正则表达式) \1 # 子串匹配标记 & # 已匹配字符串标记 sed元字符集 ^ # 匹配行开始,如:/^sed/匹配所有以sed开头行。...保持和获取:h命令和G命令sed处理文件时候,每一行都被保存在一个叫模式空间临时缓冲区,除非行被删除或者输出被取消,否则所有被处理行都将 打印在屏幕上。...第二条语句意思是,当到达最后一行后,G命令取出保持缓冲区行,然后把它放回模式空间中,且追加到现在已经存在于模式空间中末尾。在这个例子中就是追加到最后一行。...Sed对于脚本输入命令非常挑剔,在命令末尾不能有任何空白或文本,如果在一行中有多个命令,要用分号分隔。以#开头行为注释行,且不能跨行。

    23610

    常见linux命令介绍-sed

    c\ 把选定行改为文本。 d 删除,删除选择行。 D 删除模板块第一行。 s 替换指定字符 h 拷贝模板块内容到内存缓冲区。 H 追加模板块内容到内存缓冲区。...n 读取下一个输入行,用下一个命令处理行而不是用第一个命令。 N 追加下一个输入行到模板块后面并在二者间嵌入一个行,改变当前行号码。 p 打印模板块行。 P(大写) 打印模板块第一行。...q 退出Sed。 b lable 分支到脚本带有标记地方,如果分支不存在则分支到脚本末尾。 r file 从file读行。...y 表示把一个字符翻译为另外字符(但是不用于正则表达式) \1 子串匹配标记 & 已匹配字符串标记 sed元字符集 符号 说明 ^ 匹配行开始,如:/^sed/匹配所有以sed开头行。...实例 文本查找 文本删除 文本编辑 总结 sed是一个非常有用且重要文本处理工具之一,以上就是sed命令一些常见操作介绍。

    1.6K10

    Linux:sed命令详解

    sed 把每一行都存在临时缓冲区,对这个副本进行编辑,所以不会修改原文件。 2. 定址 定址用于决定对哪些行进行编辑。地址形式可以是数字、正则表达式、或二者结合。...只有当命令存在语法错误时,sed 退出状态才不是 0。 5.正则表达式元字符 与 grep 一样,sed 也支持特殊元字符,来进行模式查找、替换。...无论什么字符(换行符、反斜线除外),只要紧跟s命令,就成了串分隔符。 6.4  e 选项 -e 是编辑命令用于 sed 执行多个编辑任务情况下。...而G命令则把暂存缓冲区内容追加到了模式空间的当前行后。此处即追加到了末尾。 7.  sed 脚本 sed 脚本就是写在文件一列 sed 命令脚本,要求命令末尾不能有任何多余空格或文本。...如果在一行中有多个命令,要用分号分隔。执行脚本时,sed 先将输入文件第一行复制到模式缓冲区,然后对其执行脚本中所有的命令

    7.1K60

    Linux三剑客命令Sed

    #获得内存缓冲区内容,并替代当前模板块文本 G #获得内存缓冲区内容,并追加到当前模板块文本后面 l #列表不能打印字符清单 n #读取下一个输入行,用下一个命令处理行而不是用第一个命令...N #追加下一个输入行到模板块后面并在二者间嵌入一个行,改变当前行号码 p #打印匹配行 P #(大写)打印模板第一行 q #退出Sed b #lable 分支到脚本带有标记地方...,如果分支不存在则分支到脚本末尾 r #file 从file读行 t #label if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号命令处,或者到脚本末尾 T #...#表示把行写入一个文件 x #表示互换模板块文本和缓冲区文本 y #表示把一个字符翻译为另外字符(但是不用于正则表达式) \1 #子串匹配标记 & #已匹配字符串标记 Sed正则 ^...所有行都写入到test2文件,文件可以不存在 #如果文件存在,就会被重定向不是追加 7、追加与插入 [root@centos001 ~]#sed '/^l/a\2017-08-08' test2 linux

    1.5K30

    Shell 编程日记

    等语句控制; Shell 脚本句末无须标点符号标记,换行即表示语句结束; Shell 脚本严格区分大小写,a 和 A 是完全不同两个字符串; Shell 脚本通常以 /usr/bin/bash 开头...} 008 | 管道符,把前一个命令执行结果作为后一个命令输入 查看文件 test.txt 并统计行数cat test.txt | wc -l 009 (()) 双括号一般用于计算val++ :后增...内容 } 函数调用 // 调用函数,直接写函数名即可 test ---- sed、awk 用法 sed 编辑器(流编辑器) // sed 常见用法 // 常规替换字符,默认情况只替换第一次匹配到字符串...// 删除文件 file 第 7 行以后所有的行 // 插入操作,如果使用变量,请使用双引号 sed -i "Line i str" file // 在 Line行前插入 str(行),i 前可以加数字...(3i)表示第几行前插入 sed -i 'Line a str" file // 在 Line行后插入 str(行),a 前可以加数字(3a)表示第几行后插入 // 追加操作 ---- Shell

    20320

    使用 sed 命令进行复制、剪切和粘贴

    虽然它们都能用于文本解析,但都有其特殊性。本文研究 sed 命令,它是一个 流编辑器(stream editor)。 我之前写过关于 sed 以及它远亲 ed 文章。...小写 h 告诉 sed 覆盖保留空间中的当前内容,而大写 H 告诉 sed 将数据追加到保留空间中已经存在内容之后。...用 sed 剪切和粘贴 现在你知道了如何将字符串从模式空间转到保留空间并再次返回,你可以设计一个 sed 脚本来复制、删除,然后在文档粘贴一行。...第二个脚本删除包含字符串 three 任何行。这样就完成了与文字处理器或文本编辑器 剪切 动作等效功能。...最后一个脚本找到包含字符串 two 行,并将保留空间内容_追加_到模式空间,然后打印模式空间。 任务完成。 使用 sed 编写脚本 再说一次,使用单独脚本语句纯粹是为了视觉和心理上简单。

    1.7K20

    每天一个 Linux 命令(3):sed

    -n #取消默认输出(如果和p命令同时使用只会打印发生改变行) -h #帮助 -V #显示版本信息 常用动作 a #在当前行下面插入文本 i #在当前行上面插入文本 c #把选定行改为文本...G #获得内存缓冲区内容,并追加到当前模板块文本后面 l #列表不能打印字符清单 n #读取下一个输入行,用下一个命令处理行而不是用第一个命令 N #追加下一个输入行到模板块后面并在二者间嵌入一个行...,改变当前行号码 p #打印匹配行 P #(大写)打印模板第一行 q #退出Sed b #lable 分支到脚本带有标记地方,如果分支不存在则分支到脚本末尾 r #file 从file读行...w #表示把行写入一个文件 x #表示互换模板块文本和缓冲区文本 y #表示把一个字符翻译为另外字符(但是不用于正则表达式) 1 #子串匹配标记 & #已匹配字符串标记 Sed...#如果文件存在,就会被重定向不是追加 7、追加与插入 [root@centos001 ~]#sed '/^l/a2017-08-08' test2 linux centos6.8 2017-08-08

    1.1K30

    Linux如何通过命令查看日志文件某几行(中间几行或最后几行)「建议收藏」

    只有当命令存在语法错误时,sed退出状态才不是0。 5.正则表达式元字符 与grep一样,sed也支持特殊元字符,来进行模式查找、替换。...无论什么字符(换行符、反斜线除外),只要紧跟s命令,就成了串分隔符。 6.4 e选项 -e是编辑命令用于sed执行多个编辑任务情况下。...6.6 w命令 sed -n ‘/hrwang/w me.txt’ datafile 6.7 a\ 命令 a\ 命令追加命令追加将添加新文本到文件当前行(即读入模式缓冲区行)后面。...6.9 c\ 命令 sed使用该命令将已有文本修改成文本。 6.10 n命令 sed使用该命令获取输入文件下一行,并将其读入到模式缓冲区,任何sed命令都将应用到匹配行紧接着下一行上。...而H命令则把每次匹配hrwnag行都追加存在暂存缓冲区。

    9.7K60

    shell脚本快速入门之-----正则三剑客之二sed用法大全!!!

    sed 工作环境是在内存更改写入文件 因为内存是断电就没了 那么怎么才能将写入数据写到硬盘 sed-i 覆盖一下 否则你改了也没用 工作原理图 ?...执行:默认情况下,所有的 sed 命令都在模式空间中顺序地执行,除非指定了行地址,否则 sed 命令将会在所有的行上依次执行。 显示:发送修改后内容到输出流。...2、sed 命令选项主要包含以下几种 -e 或–expression=:表示用指定命令或者脚本来处理输入文本文件。 -f 或–file=:表示用指定脚本文件来处理输入文本文件。...在使用 sed 命令进行替换操作时需要用到 s(字符串替换)、c(整行/整块替换)、y(字符转换)命令选项,常见用法如下所示。...H:复制到剪贴板; g、G:将剪贴板数据覆盖/追加至指定行; w:保存为文件; r:读取指定文件; a:追加指定内容 sed '/the/{H;d};$G' test.txt //将包含the

    1.6K31

    Shell三大利器之sed

    多行时除最后一行外,每行末尾需用“\”续行 b lable 分支到脚本带有标记地方,如果分支不存在则分支到脚本末尾。 c 用此符号后新文本替换当前行文本。...列出非打印字符 n 读入下一输入行,并从下一条命令而不是第一条命令开始对其处理 N 追加下一个输入行到模板块后面并在二者间嵌入一个行,改变当前行号码。...q 结束或退出sed r 从文件读取输入行 ! 对所选行以外所有行应用命令 s 用一个字符串替换另一个 如s/re/string,用string替换正则表达式re。...T 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号命令处,或者到脚本末尾。...'s/old/&s/' 1.txt 删除1.txt每行第一个old都替换成olds &代表前面查找字符串 4,7s/^/#/ sed '4,7s/^/#/' 1.txt

    2.1K00

    【Linux篇】--sed用法

    c\ 把选定行改为文本。 d 删除,删除选择行。 D 删除模板块第一行。 s 替换指定字符 h 拷贝模板块内容到内存缓冲区。 H 追加模板块内容到内存缓冲区。...n 读取下一个输入行,用下一个命令处理行而不是用第一个命令。 N 追加下一个输入行到模板块后面并在二者间嵌入一个行,改变当前行号码。 p 打印模板块行。 P(大写) 打印模板块第一行。...q 退出Sed。 b lable 分支到脚本带有标记地方,如果分支不存在则分支到脚本末尾。 r file 从file读行。...T label 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号命令处,或者到脚本末尾。 w file 写并追加模板块到file末尾。...y 表示把一个字符翻译为另外字符(但是不用于正则表达式) \1 子串匹配标记 & 已匹配字符串标记 4、sed元字符集 ^ 匹配行开始,如:/^sed/匹配所有以sed开头行。

    1.6K20

    【建议收藏系列】爆肝3w字带你理解什么叫运维~

    单引号用于保持引号内所有字符字面值,即使引号内\和回车也不例外,但是字符串不能出现单引号。如果引号没有配对就输入回车,Shell会给出续行提示符,要求用户把引号配上对。...下面这个脚本可以一次创建多个目录,各目录名通过命令行参数传入,脚本逐个测试各目录是否存在如果目录不存在,首先打印信息然后试着创建该目录。 #!...Shell脚本调试方法 Shell提供了一些用于调试脚本选项,如下所示: -n 读一遍脚本命令但不执行,用于检查脚本语法错误 -v 一边执行脚本,一边将执行过脚本命令打印到标准错误输出 -...-nouser 查找无有效属主文件,即该文件属主在/etc/passwd存在。 -newer file1 ! file2 查找更改时间比文件file1但比文件file2旧文件。...adm -mtime +3 -print 8、查找比某个文件或旧文件 如果希望查找更改时间比某个文件但比另一个文件旧所有文件,可以使用-newer选项。

    2.1K30
    领券