linux sed 正则表达式(Linux基本操作10-----正则表达式与文件格式化处理)

2024-04-22 20:50:40 9

linux sed 正则表达式(Linux基本操作10-----正则表达式与文件格式化处理)

本文目录

Linux基本操作10-----正则表达式与文件格式化处理

一正则表达式1简单的说正则表达式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易的达到查找,删除,替换某特定字符串的处理程序2grep在数据中查找一个字符串时,是以整行为单位来进行数据的选取的,也就是说假如一个文件内有10行,那么其中两行是有用的,那么就将这两行显示出来,其它的丢弃3在bash当中,我们知道通配符*可以用来表示任意个字符,但是正则表达式中的*表示不同的含义在正则表达式中,’.’表示的是一定有一个任意字符的意思在正则表达式中,’*’表示的是重复前一个字符0到无穷多次的意思4基础的正则表达式RE字符意义^word查找行首为word的行word$查找结尾为word的行.代表一定有一个任意的字符*重复前一个字符0个到无穷多个从字符集合里面选择一个字符从要选择的范围里面选择一个字符从不是这个字符集合里面找出一个字符/{n,m/}连续n到m个的前一个字符,/{n/}则是连续n个前一个字符,/{n,/}则是联系n到无穷多个前一个字符二sed工具1sed本省是一个管道命令,可以分析标转输入,而且sed还可以将数据进行替换,删除,新增,选取特定行等功能2sed的用法sed-n使用安静模式,在一般模式中,所有来自stdin的数据一般都会被列出到屏幕上,但是如果加上-n这个参数的话,则只有经过sed特殊处理的那一行才会被列出-e直接在命令模式上进行sed的动作-f直接将sed的动作写在一个文件内,-ffilename则可以执行filename内的sed动作-rsed的动作支持的是扩展正则表达式的语法-i直接修改文件的内容,而不是由屏幕输出3动作说明n1,n2functionn1,n2不见得会存在,一般代表的是进行的动作的行数function有下面这些参数a:新增,a的后面可以接字符串,而这些字符串会在新的一行出现,目前的下一行c:替换,c的后面可以接字符串,这些字符串可以替换n1,n2之间的行d:删除,因为是删除,所以d后面通常不接任何参数i:插入,i的后面可以接字符串,而这些字符串会在新的一行,目前的上一行p:打印,也就是将某个选择的数据打印出来s:替换,可以直接进行替换的工作三文件的格式化以及相关处理1格式化打印printf’打印内容‘实际内容关于C程序语言内,常见的变量格式%ns那个n是数字,s代表的是string%nd那个n是数字,d代表的是整数%N.nf那个n与N都是数字,f代表浮点数2文件比较工具diffdiff就是用在比较两个文件之间的区别,并且是行为单位来比较的,一般是用在ASCLL纯文本文件的比较上diff的用法difffrom_fileto_file-b忽略一行当中仅有多个空白的区别-B忽略空白行的区别-i忽略大小写的不同3如果我们要将旧的文件升级成为新的文件时,我们可以先利用diff比较出文件的区别,并将区别文件制作成为补丁文件,再由补丁文件更新旧文件即可。一般来说我们使用diff制作出来的比较文件通常扩展名为.patch更新:patch-pN《patch_file还原:patch-R-pN《patch_file

关于Linux中正则表达式的小问题

echo abcd123 | sed ’s/\(*\).*/\U\1/’\(..\) 保存匹配的字符,如s/\(love\)able/\1rs,loveable被替换成lovers上例中\1就是指前面的\(*\)\U 是转换成大写这样就明白了,\U\1指 *全部转成大写。invalid reference \1 on `s’ command’s RHS“s”命令的RHS非法引用\1,RHS应该是指右边,LHS指左边。没注意过这个单词。呵呵。

sed正则表达式意思是

题主你好,

写在前面: 题主的sed中一共是4个表达式, 我先分别讲每个表达式的作用,最后再讲它们放在一起的效果.

你这总共4个正则表达式,从左到右:

    第1个: /^#/d              作用是: 将以#号开头的行删掉

   

    第2个: /^*$/d        作用是: 将只含有空格和或tab的行删掉, 这里用的是"和或"说明如果行只包含空格会被删掉, 如果行只包含tab也会被删掉, 如果行是由空格和tab一起组成的也会被删掉

    第3个: s#^*##       作用是: 将开头的空格和或tab删掉,但该行后面的内容会保留

    第4个: s#*$##       作用是: 将结尾的空格和或tab删掉,但该行后面的内容会保留

---------------

先说一下: sed是读一行处理一行, 而-e的作用是指定多个作用在被处理行上的命令, 并且后面的命令作用对象是头一个-e命令的处理结果.

举例来说, 假设我有一个文件名叫number,里面只有一行内容为1234,则

sed -e ’s#1#3#’ -e ’s#3#5#’的处理情况为:

    先将第1个-e后面的命令,’s#1#3#’作用在内容1234上, 将1替换为3,得到的结果为: 3234.

    再将第2个-e后面的命令,’s#3#5#’作用在第1个-e命令处理后的结果3234上,将3替换为5,得到的结果为5254.

-----

最后引出题主的那个sed命令:  sed -e ’/^#/d’ -e ’/^*$##’

题主可以对照着上面我对这4个正则表达式的解释去理解我下面所说的:

   先读取文件流的第一行, 看这行:

        1.是否是以#开头的, 如果是则将这行直接删掉, 因为第1个正则就把行都删了,所以后面那三个命令也就不执行了,然后继续读取下一行, 然后从第1个正则开始处理.

       2.如果读入的行不是以#开头的,则第1个正则就没用了, 再看第2个正则, 如果读取的这一行只包含空格和或tab,则将这行删掉, 即然在第2个正则这读入的行就被删了, 后面的两个正则也就不执行了,然后继续读取下一行, 然后从第1个正则开始处理.

       3.如果读入的行不是以#开头的, 则第1个正则就没什么用了, 也不是只包含空格和或tab,则第2个正则也没用了, 如果行是有内容的,但是以空格和或tab开头,这时第3个正则就起作用了, 将开头所有的空格和或tab都删掉,只保留空格和或tab后面的内容, 第3个正则完事了, 再看第4个正则,第4个正则的作用对象是第3个正则处理后的结果,看看第3个正则处理的结果中末尾是否是以空格和或tab结尾的,如果是则将末尾的空格和或tab删掉,剩下的就是最后输出的内容, 说了这么多总结下来就是"掐头去尾".

        4.如果读入的行,即不是以#开头, 也不是只包含空格和或tab,有内容,但不是以空格和或tab开头,但是以空格或是tab结尾的, 此时会将末尾的空格和或tab都删掉,保留剩下的内容,总尾下来就是: "去尾"

-----------

上面说了这么多, 给个例子, 通过执行后的结果和原始数据对比,自己理解一下吧:

写在最后: 写的比较啰嗦,不知道你有没有耐心看完.

希望对你有帮助, 欢迎追问.

       

请问Linux中这段命令什么意思“ sed ’/^$/d’”

1、正则表达式里 ^代表行首,$代表行首2、例如在vi里,Shift+^光标到行首,Shift+$,光标到行尾3、sed -i ’/^$/d’ a.txt会将没内容的空行删除4、grep ’^ABC’ a.txt搜索ABC开头的行

linux中sed ’s/^\t/apple\t/’ 是什么意思呢该如何理解它

您好很高兴回答您的问题:

  1. \t表示 tab键或tab字符 一般是8个空格长度的"大"空格

  2. \t含义

  3. ^是正则表达式表示 以....开头的部分  ^r 表示以r字母开头的行   
  4. ^含义

  5. sed的替换格式  s///  或 s### 表示替换

  6. s##替换

  7. 最后问题可以改为s### 形式,’s#^\t#apple\t#’  表示把开头的tab字符替换为apple+tab字符

  8. 最后效果图

  9. 最后一个问题:  可以改为 sed ’1 s#^#a1\ta2#’    1表示第1行, s###表替换,把开头的空字符,替换为a1tab键a2  

  10. 请点击输入图片描述


理解了,点个赞吧,不理解继续问.

linux shell script 使用正则表达式替换查找文本

我也写个例子:#!/bin/shread -p "Pls input subnet: " $subnetread -p "Pls input netmask: " $netmasksed -i "s_subnet_subnet $subnet netmask $netmask{_" dhcpd.conf ----------------------------------------------------------------------------------------更新一下。read -p "Pls input subnet: " $subnetread -p "Pls input netmask: " $netmasksed -i “s/^\(.*subnet \).*\( netmask \).*\(.*\)$/\1$subnet\2$netmask\3/” dhcpd.conf sed中正则匹配时可以在不需要变化的文本两边插入带反斜杠的圆括号来定义区域,然后通过区域号\x(x从1开始)来引用这些由圆括号界定的区域。这样就可以实现只改变部分区域而另一部分保持不变。

linux sed 正则表达式(Linux基本操作10-----正则表达式与文件格式化处理)

本文编辑:admin

本文相关文章:


linux sed 正则表达式(linux中sed ’s/^\t/apple\t/’ 是什么意思呢该如何理解它)

linux sed 正则表达式(linux中sed ’s/^\t/apple\t/’ 是什么意思呢该如何理解它)

本文目录linux中sed ’s/^\t/apple\t/’ 是什么意思呢该如何理解它关于Linux中正则表达式的小问题sed正则表达式意思是linux shell script 使用正则表达式替换查找文本Linux基本操作10-----正

2024年6月13日 05:27

更多文章:


html中type的属性值(HTML5中input元素新增加哪些type属性值它们有什么作用)

html中type的属性值(HTML5中input元素新增加哪些type属性值它们有什么作用)

本文目录HTML5中input元素新增加哪些type属性值它们有什么作用HTML的input中type属性的属性值包括哪些html中样式和标签的属性是同一概念吗Html5的新增type属性怎么用代码在下面,谢谢大神们type标签在HTML中

2024年7月3日 08:08

java实现简单点餐系统(Java新手问问题!请用for循环,while以及do while循环帮我写一个点餐系统,只需要写出消费多少元就行!)

java实现简单点餐系统(Java新手问问题!请用for循环,while以及do while循环帮我写一个点餐系统,只需要写出消费多少元就行!)

本文目录Java新手问问题!请用for循环,while以及do while循环帮我写一个点餐系统,只需要写出消费多少元就行!学校订餐系统的代码怎样写基于java的美食推荐系统和基于java的餐厅点餐系统哪个选初学者,我有一个简单的java项

2024年3月15日 04:30

0是整数吗还是负数?0是整数吗

0是整数吗还是负数?0是整数吗

本文目录0是整数吗还是负数0是整数吗0算整数吗零是整数吗0是整数吗 0是不是自然数0是整数吗是正整数吗零是不是属于整数呢0是整数吗为什么0是不是整数0是整数吗还是负数0不是正整数。正整数,为大于0的整数,也是正数与整数的交集。正整数又可分为

2024年7月19日 06:57

生日祝福代码html模板(父亲节微信祝福代码)

生日祝福代码html模板(父亲节微信祝福代码)

各位老铁们,大家好,今天由我来为大家分享生日祝福代码html模板,以及父亲节微信祝福代码的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录父亲节微信祝

2024年7月22日 12:05

rather怎么读(rather怎么读)

rather怎么读(rather怎么读)

本文目录rather怎么读英语but rather怎么翻译rather怎么读/adv. ˈræðər, ˈrɑðər; interj. ˈræðˈɜr, ˈrɑˈðɜr/从上面音标可见 rather 有不同读法,其发音按地区和口音而异,我们

2024年6月25日 05:45

webserver接口(思科模拟器实验的Web Server接口怎麽打开)

webserver接口(思科模拟器实验的Web Server接口怎麽打开)

本文目录思科模拟器实验的Web Server接口怎麽打开请教个关于多线程调用webservice接口是否会相互影响的问题DELPHI怎样写Webserverice接口开发我写了一个返回数据库表信息的webserver接口,对方调用我的web

2024年6月24日 03:57

模块结构图是什么阶段的结果?模块结构图产生的基础或依据是什么

模块结构图是什么阶段的结果?模块结构图产生的基础或依据是什么

“模块结构图”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看模块结构图是什么阶段的结果?模块结构图产生的基础或依据是什么!本文目录模块结构图是什么阶段的结果模块结构图产生的基础或依据是什么软件工程:把下面的DFD图转换为初始

2024年7月24日 23:20

律师资格证考试考哪几门(律师证考几科可以考几年)

律师资格证考试考哪几门(律师证考几科可以考几年)

各位老铁们,大家好,今天由我来为大家分享律师资格证考试考哪几门,以及律师证考几科可以考几年的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录律师证考几

2024年9月9日 09:05

foregone(foregone wages什么意思)

foregone(foregone wages什么意思)

本文目录foregone wages什么意思foregone-alternative是什么意思foregone wages什么意思foregone wages已成定局词典结果:foregoneadj.先前的,过去的,预知的; v.(在位置时

2024年7月23日 21:56

prompt用法(英文,prompt的用法 )

prompt用法(英文,prompt的用法 )

本文目录英文,prompt的用法 alert,confirm与prompt的用法,各自属于什么客户端DOS中prompt用法prompt和promote的区别c语言prompt什么意思prompt和urge的用法区别是什么prompt中p为

2024年6月22日 19:33

struts2安装(struts2 下载出错!IE提示无法下载!)

struts2安装(struts2 下载出错!IE提示无法下载!)

本文目录struts2 下载出错!IE提示无法下载!如何在linux中安装strutsmyeclipse xml自动提示怎么配置struts2主要核心功能是由什么实现struts2好像不同版本需要的jar包都不一样,到时候我添加的时候我怎么

2024年4月22日 13:10

k int sqrt m 是什么意思(int m,i,k; scanf(“%d“,&m); k=(int)sqrt(m); for(i=2;i<=k;i++) i f(m%i==0)break; if(i>=k) printf(“%d)

k int sqrt m 是什么意思(int m,i,k; scanf(“%d“,&m); k=(int)sqrt(m); for(i=2;i<=k;i++) i f(m%i==0)break; if(i>=k) printf(“%d)

本文目录int m,i,k; scanf(“%d“,&m); k=(int)sqrt(m); for(i=2;i=k) printf(“%d急~~!!在线等(int)sqrt(m)在VC中怎么解释 有追加悬赏20帮我看看这个程序我知道错了但

2024年6月27日 18:26

老板问:企业培训最终为了什么,我答:解决问题,提高效益,老板摇头,你们认为是什么?企业培训公司是做什么的怎么发展呢

老板问:企业培训最终为了什么,我答:解决问题,提高效益,老板摇头,你们认为是什么?企业培训公司是做什么的怎么发展呢

本文目录老板问:企业培训最终为了什么,我答:解决问题,提高效益,老板摇头,你们认为是什么企业培训公司是做什么的怎么发展呢企业管理培训主要课程有哪些做企业培训的本质是什么中小企业该怎样进行企业培训老板问:企业培训最终为了什么,我答:解决问题,

2024年7月15日 10:04

spring的正确读音(spring 春天 是发b的音还是p的音)

spring的正确读音(spring 春天 是发b的音还是p的音)

大家好,关于spring的正确读音很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于spring 春天 是发b的音还是p的音的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位

2024年7月13日 22:54

sql2000收缩数据库日志(SqServer2000数据库日志满了怎么办)

sql2000收缩数据库日志(SqServer2000数据库日志满了怎么办)

这篇文章给大家聊聊关于sql2000收缩数据库日志,以及SqServer2000数据库日志满了怎么办对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录SqServer2000数据库日志满了怎么办SQL server数据库日志满了

2024年9月8日 21:50

xss在线利用平台(xss怎么办公软件)

xss在线利用平台(xss怎么办公软件)

各位老铁们好,相信很多人对xss在线利用平台都不是特别的了解,因此呢,今天就来为大家分享下关于xss在线利用平台以及xss怎么办公软件的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录xss怎么办公软件xss如何使

2024年8月20日 06:40

java反射机制的原理和用途(什么是反射机制,有什么作用)

java反射机制的原理和用途(什么是反射机制,有什么作用)

本文目录什么是反射机制,有什么作用Java中的反射机制到底是干什么的有什么用什么是反射机制,有什么作用1.反射机制定义反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改其本身状态或行为的一种能力。在Java环境

2024年7月2日 16:42

matrix键盘在哪买(沈阳哪有卖机械键盘的)

matrix键盘在哪买(沈阳哪有卖机械键盘的)

“matrix键盘在哪买”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看matrix键盘在哪买(沈阳哪有卖机械键盘的)!本文目录沈阳哪有卖机械键盘的matrix怎么买matrixme在哪买达芬奇键盘要去哪买matrix在哪买

2024年7月28日 09:41

return怎么读音(回的英文怎么读)

return怎么读音(回的英文怎么读)

本文目录回的英文怎么读return; shorts;shirt; join 这英语用谐音怎么读回的英文怎么读return 英 第三人称单数:returns 复数:returns 现在分词:returning 过去式:return

2024年7月18日 04:59

vs2010破解版下载(去哪下载VS2010和VC++ 10.0如题 谢谢了)

vs2010破解版下载(去哪下载VS2010和VC++ 10.0如题 谢谢了)

本文目录去哪下载VS2010和VC++ 10.0如题 谢谢了求vs2010中文破解版下载地址谁能给我一个vs2010下载地址,最好中文的visual studio 2010 中文专业版破解版去哪下载VS2010和VC++ 10.0如题 谢谢

2024年6月14日 06:35

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1730
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1155
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索