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

shell脚本中sed怎么用

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

shell脚本中sed怎么用

这篇文章主要介绍了shell脚本中sed怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

sed在处理文本时是逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过

sed是Linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件的编辑。本文主要介绍sed的一些基本用法,并通过shell脚本演示sed的使用实例。

1.sed的使用方法,调用sed 命令的语法有两种:

一.在命令行指定sed指令对文本进行处理:sed +选项  ‘指令' 文件

二.先将sed指令保存到文件中,将该文件作为参数进行调用:sed   +选项  -f  包含sed指令的文件  文件

sed的常用选项:

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

-e:它告诉sed将下一个参数解释为一个sed指令,只有当命令行上给出多个sed指令时才需要使用-e选项

-f:后跟保存了sed指令的文件

-i:直接对内容进行修改,不加-i时默认只是预览,不会对文件做实际修改

-n:取消默认输出,sed默认会输出所有文本内容,使用-n参数后只显示处理过的行

sed中的编辑命令:

a:追加  向匹配行后面插入内容

c:更改  更改匹配行的内容

i:插入  向匹配行前插入内容

d:删除  删除匹配的内容

s:替换  替换掉匹配的内容

p:打印  打印出匹配的内容,通常与-n选项和用

=:用来打印被匹配的行的行号

n:读取下一行,遇到n时会自动跳入下一行

r,w:读和写编辑命令,r用于将内容读入文件,w用于将匹配内容写入到文件

2.sed命令实例:

示例1:向文件中添加或插入行

sed '3ahello' 1.txt #向第三行后面添加hello,3表示行号

shell脚本中sed怎么用

sed '/123/ahello' 1.txt #向内容123后面添加hello,如果文件中有多行包括123,则每一行后面都会添加

shell脚本中sed怎么用

sed '$ahello' 1.txt #在最后一行添加hello

shell脚本中sed怎么用

sed '3ihello' 1.txt #在第三行之前插入hello

shell脚本中sed怎么用

sed '/123/ihello' 1.txt #在包含123的行之前插入hello,如果有多行包含123,则包含123的每一行之前都会插入hello

shell脚本中sed怎么用

sed '$ihello' 1.txt #在最后一行之前插入hello

shell脚本中sed怎么用

示例2:更改文件中指定的行

sed '1chello' 1.txt #将文件1.txt的第一行替换为hello

shell脚本中sed怎么用

sed '/123/chello' 1.txt #将包含123的行替换为hello

shell脚本中sed怎么用

sed '$chello' 1.txt #将最后一行替换为hello

shell脚本中sed怎么用

示例3:删除文件中的行

sed '4d' 1.txt #删除第四行

shell脚本中sed怎么用

sed '1~2d' 1.txt #从第一行开始删除,每隔2行就删掉一行,即删除奇数行

shell脚本中sed怎么用

sed '1,2d' 1.txt #删除1~2行

shell脚本中sed怎么用

sed '1,2!d' 1.txt #删除1~2之外的所有行

shell脚本中sed怎么用

sed '$d' 1.txt #删除最后一行

shell脚本中sed怎么用

sed '/123/d' 1.txt #删除匹配123的行

shell脚本中sed怎么用

sed '/123/,$d' 1.txt #删除从匹配123的行到最后一行

shell脚本中sed怎么用

sed '/123/,+1d' 1.txt #删除匹配123的行及其后面一行

shell脚本中sed怎么用

sed '/^$/d' 1.txt #删除空行

shell脚本中sed怎么用

sed '/123\|abc/!d' 1.txt #删除不匹配123或abc的行,/123\|abc/ 表示匹配123或abc ,!表示取反

shell脚本中sed怎么用

sed '1,3{/123/d}' 1.txt #删除1~3行中,匹配内容123的行,1,3表示匹配1~3行,{/123/d}表示删除匹配123的行

shell脚本中sed怎么用

示例4:替换文件中的内容

sed 's/123/hello/' 1.txt #将文件中的123替换为hello,默认只替换每行第一个123

shell脚本中sed怎么用

sed 's/123/hello/g' 1.txt #将文本中所有的123都替换为hello

shell脚本中sed怎么用

sed 's/123/hello/2' 1.txt #将每行中第二个匹配的123替换为hello

shell脚本中sed怎么用

sed -n 's/123/hello/gpw 2.txt' 1.txt #将每行中所有匹配的123替换为hello,并将替换后的内容写入2.txt

shell脚本中sed怎么用

sed '/#/s/,.*//g' 1.txt #匹配有#号的行,替换匹配行中逗号后的所有内容为空 (,.*)表示逗号后的所又内容

shell脚本中sed怎么用

sed 's/..$//g' 1.txt #替换每行中的最后两个字符为空,每个点代表一个字符,$表示匹配末尾 (..$)表示匹配最后两个字符

shell脚本中sed怎么用

sed 's/^#.*//' 1.txt #将1.txt文件中以#开头的行替换为空行,即注释的行 ( ^#)表示匹配以#开头,(.*)代表所有内容

shell脚本中sed怎么用

sed 's/^#.*//;/^$/d' 1.txt #先替换1.txt文件中所有注释的空行为空行,然后删除空行,替换和删除操作中间用分号隔开

shell脚本中sed怎么用

sed 's/^[0-9]/(&)/' 1.txt #将每一行中行首的数字加上一个小括号 (^[0-9])表示行首是数字,&符号代表匹配的内容#或者sed 's/\(^[0-9]\)/(\1)/' 1.txt #替换左侧特殊字符需钥转义,右侧不需要转义,\1代表匹配的内容

shell脚本中sed怎么用

sed 's/$/&'haha'/' 1.txt # 在1.txt文件的每一行后面加上"haha"字段

shell脚本中sed怎么用

示例5:打印文件中的行

sed -n '3p' 1.txt #打印文件中的第三行内容

shell脚本中sed怎么用

sed -n '2~2p' 1.txt #从第二行开始,每隔两行打印一行,波浪号后面的2表示步长

shell脚本中sed怎么用

sed -n '$p' 1.txt #打印文件的最后一行

shell脚本中sed怎么用

sed -n '1,3p' 1.txt #打印1到3行

shell脚本中sed怎么用

sed -n '3,$p' 1.txt #打印从第3行到最后一行的内容

shell脚本中sed怎么用

sed -n '/you/p' 1.txt #逐行读取文件,打印匹配you的行

shell脚本中sed怎么用

sed -n '/bob/,3p' 1.txt #逐行读取文件,打印从匹配bob的行到第3行的内容sed -n '/you/,3p' 1.txt #打印匹配you 的行到第3行,也打印后面所有匹配you 的行

shell脚本中sed怎么用

sed -n '1,/too/p' 1.txt #打印第一行到匹配too的行sed -n '3,/you/p' 1.txt #只打印第三行到匹配you的行

shell脚本中sed怎么用

sed -n '/too/,$p' 1.txt #打印从匹配too的行到最后一行的内容

shell脚本中sed怎么用

sed -n '/too/,+1p' 1.txt #打印匹配too的行及其向后一行,如果有多行匹配too,则匹配的每一行都会向后多打印一行

shell脚本中sed怎么用

sed -n '/bob/,/too/p' 1.txt #打印从匹配内容bob到匹配内容too的行

shell脚本中sed怎么用

示例6:打印文件的行号

sed -n "$=" 1.txt #打印1.txt文件最后一行的行号(即文件有多少行,和wc -l 功能类似)

shell脚本中sed怎么用

sed -n '/error/=' 1.txt #打印匹配error的行的行号sed -n '/error/{=;p}' 1.txt #打印匹配error的行的行号和内容(可用于查看日志中有error的行及其内容)

shell脚本中sed怎么用

示例7:从文件中读取内容

sed 'r 2.txt' 1.txt #将文件2.txt中的内容,读入1.txt中,会在1.txt中的每一行后都读入2.txt的内容

shell脚本中sed怎么用

sed '3r 2.txt' 1.txt #在1.txt的第3行之后插入文件2.txt的内容(可用于向文件中插入内容)

shell脚本中sed怎么用

sed '/245/r 2.txt' 1.txt #在匹配245的行之后插入文件2.txt的内容,如果1.txt中有多行匹配456则在每一行之后都会插入

shell脚本中sed怎么用

sed '$r 2.txt' 1.txt #在1.txt的最后一行插入2.txt的内容

shell脚本中sed怎么用

示例8:向文件中写入内容

sed -n 'w 2.txt' 1.txt #将1.txt文件的内容写入2.txt文件,如果2.txt文件不存在则创建,如果2.txt存在则覆盖之前的内容

shell脚本中sed怎么用

sed -n '2w 2.txt' 1.txt #将文件1.txt中的第2行内容写入到文件2.txt

shell脚本中sed怎么用

sed -n -e '1w 2.txt' -e '$w 2.txt' 1.txt #将1.txt的第1行和最后一行内容写入2.txtsed -n -e '1w 2.txt' -e '$w 3.txt' 1.txt #将1.txt的第1行和最后一行分别写入2.txt和3.txt

shell脚本中sed怎么用

sed -n '/abc\|123/w 2.txt' 1.txt #将1.txt中匹配abc或123的行的内容,写入到2.txt中

shell脚本中sed怎么用

sed -n '/666/,$w 2.txt' 1.txt #将1.txt中从匹配666的行到最后一行的内容,写入到2.txt中

shell脚本中sed怎么用

sed -n '/xyz/,+2w 2.txt' 1.txt #将1.txt中从匹配xyz的行及其后2行的内容,写入到2.txt中

shell脚本中sed怎么用

示例9:sed 在shell脚本中的使用

实例1:替换文件中的内容

#!/bin/bashif [ $# -ne 3 ];then  #判断参数个数 echo "Usage: $0 old-part new-part filename" #输出脚本用法 exitfised -i "s#$1#$2#" $3  #将 旧内容进行替换,当$1和$2中包含"/"时,替换指令中的定界符需要更换为其他符号

shell脚本中sed怎么用

实例2:删除文件中的空白行

#!/bin/bashif [ ! -f $1 ];then  #判断参数是否为文件且存在 echo "$0 is not a file" exitfised -i "/^$/d" $1 #将空白行删除

shell脚本中sed怎么用

实例3:格式化文本内容

#!/bin/basha='s/^ *>// #定义一个变量a保存sed指令,'s/^ *>//':表示匹配以0个或多空格开头紧跟一个'>'号的行,将匹配内容替换s/\t*//   #'s/\t*//':表示匹配以0个或多个制表符开头的行,将匹配内容替换s/^>//  #'s/^>//' :表示匹配以'>'开头的行,将匹配内容替换s/^ *//'  #'s/^ *//':表示匹配以0个或多个空格开头的行,将匹配内容替换#echo $ased "$a" $1 #对用户给定的文本文件进行格式化处理

shell脚本中sed怎么用

实用脚本:批量更改当前目录中的文件后缀名:

示例1:

#!/bin/bashif [ $# -ne 2 ];then  #判断用户的输入,如果参数个数不为2则打印脚本用法 echo "Usage:$0 + old-file new-file" exitfifor i in *$1*    #对包含用户给定参数的文件进行遍历do if [ -f $i ];then iname=`basename $i` #获取文件名 newname=`echo $iname | sed -e "s/$1/$2/g"`  #对文件名进行替换并赋值给新的变量 mv $iname $newname  #对文件进行重命名 fidoneexit 666

shell脚本中sed怎么用

示例2:

#!/bin/bashread -p "input the old file:" old #提示用户输入要替换的文件后缀read -p "input the new file:" new[ -z $old ] || [ -z $new ] && echo "error" && exit #判断用户是否有输入,如果没有输入怎打印error并退出for file in `ls *.$old`do if [ -f $file ];then newfile=${file%$old}   #对文件进行去尾 mv $file ${newfile}$new   #文件重命名 fidone

shell脚本中sed怎么用

示例3:

#!/bin/bashif [ $# -ne 2 ];then #判断位置变量的个数是是否为2 echo "Usage:$0 old-file new-file" exitfifor file in `ls`   #在当前目录中遍历文件do if [[ $file =~ $1$ ]];then #对用户给出的位置变量$1进行正则匹配,$1$表示匹配以变量$1的值为结尾的文件 echo $file   #将匹配项输出到屏幕进行确认 new=${file%$1}  #对文件进行去尾处理,去掉文件后缀保留文件名,并将文件名赋给变量new    mv $file ${new}$2  #将匹配文件重命名为:文件名+新的后缀名 fidone

shell脚本中sed怎么用

示例4:使用sed匹配文件中的IP地址

sed -nr '/([0-9]{1,3}\.){3}([0-9]{1,3})/p' 1.txt

感谢你能够认真阅读完这篇文章,希望小编分享的“shell脚本中sed怎么用”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

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

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

shell脚本中sed怎么用

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

下载Word文档

猜你喜欢

shell脚本中sed怎么用

这篇文章主要介绍了shell脚本中sed怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。sed在处理文本时是逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过。
2023-06-09

shell脚本之sed怎么使用

这篇文章主要介绍“shell脚本之sed怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“shell脚本之sed怎么使用”文章能帮助大家解决问题。sed的作用sed是Stream Editor(
2023-07-02

shell脚本--sed的用法详解

sed在处理文本时是逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过。 sed是linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大
2022-06-04

shell中sed怎么用

这篇文章给大家分享的是有关shell中sed怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.首先先来了解一下什么是sed?sed叫做流编辑器,在shell脚本和Makefile中作为过滤器使用非常普遍,也
2023-06-16

怎么在Shell脚本中使用sed命令删除特定行

这篇文章将为大家详细讲解有关怎么在Shell脚本中使用sed命令删除特定行,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。sed命令常用到的两个选项:-i : 直接在文件上编辑 (edit f
2023-06-09

shell脚本之sed详细用法详解

目录sed的作用sed使用方法介绍命令行格式举例说明对文件进行增、删、改、查操作增加文件内容对文件进行搜索替换操作其他命令其他选项sed结合正则使用补充扩展总结总结sed的作用 sed是Stream Editor(流编辑器)的缩写,简称流编
2022-07-05

shell脚本怎么用

这篇文章主要介绍了shell脚本怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。shell脚本?在说什么是shell脚本之前,先说说什么是shell。shell是外壳的意
2023-06-09

Shell文本中如何使用sed

小编给大家分享一下Shell文本中如何使用sed,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!sed 是 stream editor 的缩写,流编辑器,主要用于对
2023-06-09

Linux 中怎么使用Shell脚本

Linux 中怎么使用Shell脚本,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Linux Shell脚本示例在Linux上完成的大多数shell脚本都涉及bash sh
2023-06-16

怎么在Shell脚本中调用另一个脚本

这期内容当中小编将会给大家带来有关怎么在Shell脚本中调用另一个脚本,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。forkfork 是最普通的, 就是直接在脚本里面用 path/to/foo.sh 来调
2023-06-09

Linux shell脚本怎么用

这篇文章主要为大家展示了“Linux shell脚本怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux shell脚本怎么用”这篇文章吧。1. Linux 脚本编写基础1.1 语法基
2023-06-09

shell脚本中/dev/null怎么使用

在Shell脚本中,/dev/null用于丢弃输出或输入。下面是一些/dev/null的使用示例:1. 丢弃输出:```shellcommand > /dev/null```这将运行命令并将其输出重定向到/dev/null,而不是在标准输出
2023-08-09

shell中的sed命令怎么使用

在shell中,sed命令是一种流编辑器,用于对文本进行替换、删除、插入等操作。sed命令的基本语法如下:```sed [选项] '命令' 文件```其中,选项可以是以下之一:- `-n`:不输出模式空间内容到屏幕上。- `-e`:直接在命
2023-09-12

shell怎么调用perl脚本

要在shell中调用Perl脚本,需要执行以下步骤:1. 确保已经安装了Perl解释器。可以在终端中输入perl -v来检查Perl是否已经安装,并显示版本信息。2. 编写并保存Perl脚本文件。使用任何文本编辑器创建一个扩展名为.pl的文
2023-10-21

Shell脚本中的函数怎么使用

本篇内容介绍了“Shell脚本中的函数怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Shell脚本中的功能是什么?函数是一组命令,这
2023-06-04

Shell脚本中怎么启动Oracle

本篇文章为大家展示了Shell脚本中怎么启动Oracle,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Usage: sh oracled [start|stop|restart] SIDs 其中SI
2023-06-09

centos中怎么编写shell脚本

在CentOS中编写Shell脚本主要有以下几个步骤:打开终端,创建一个新文件,例如script.sh,可以使用touch script.sh命令创建一个空白文件。使用文本编辑器(如vi或nano)打开脚本文件,例如使用vi script.
2023-10-23

linux中怎么复制shell脚本

在Linux中,要复制一个Shell脚本,可以使用cp命令来实现。cp命令用于复制文件和目录。语法如下:cp [OPTION]... SOURCE... DESTINATION示例:cp script.sh /path/to/new_
linux中怎么复制shell脚本
2024-02-29

怎么用Tomcat安装shell脚本

本篇内容主要讲解“怎么用Tomcat安装shell脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Tomcat安装shell脚本”吧!一、JAVA环境安装首先,要安装Tomcat,我们就
2023-07-02

怎么复用外部Shell脚本

这篇文章主要为大家展示了“怎么复用外部Shell脚本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么复用外部Shell脚本”这篇文章吧。执行外部脚本的方式假如在当前目录有 a.sh 脚本,内容
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录