求解释 如下sed语句中引入变量

linux之sed命令的用法
字体:[ ] 类型:转载 时间:
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法
sed命令行格式为:sed [-nefri] ‘command' 输入文本
常用选项:-n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。-e∶直接在指令列模式上进行 sed 的动作编辑;-f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;-r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)-i∶直接修改读取的档案内容,而不是由萤幕输出。&
常用命令:a& ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~c& :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!d& :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;i& :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);p& :列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~s& :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
举例:(假设我们有一文件名为ab)删除某行[root@localhost ruby] # sed '1d' ab #删除第一行 [root@localhost ruby] # sed '$d' ab #删除最后一行[root@localhost ruby] # sed '1,2d' ab&& #删除第一行到第二行[root@localhost ruby] # sed '2,$d' ab&& #删除第二行到最后一行
显示某行.&&& [root@localhost ruby] # sed -n '1p' ab&& #显示第一行 [root@localhost ruby] # sed -n '$p' ab&& #显示最后一行[root@localhost ruby] # sed -n '1,2p' ab#显示第一行到第二行[root@localhost ruby] # sed -n '2,$p' ab#显示第二行到最后一行
使用模式进行查询[root@localhost ruby] # sed -n '/ruby/p' ab&&& #查询包括关键字ruby所在所有行[root@localhost ruby] # sed -n '/\$/p' ab#查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义
增加一行或多行字符串[root@localhost ruby]# cat abHello!ruby is me,welcome to my blog.end[root@localhost ruby] # sed '1a drink tea' ab& #第一行后增加字符串"drink tea"Hello!drink tearuby is me,welcome to my blog. end[root@localhost ruby] # sed '1,3a drink tea' ab #第一行到第三行后增加字符串"drink tea"Hello!drink tearuby is me,welcome to my blog.drink teaenddrink tea[root@localhost ruby] # sed '1a drink tea\nor coffee' ab&& #第一行后增加多行,使用换行符\nHello!drink teaor coffeeruby is me,welcome to my blog.end
代替一行或多行[root@localhost ruby] # sed '1c Hi' ab#第一行代替为HiHiruby is me,welcome to my blog.end[root@localhost ruby] # sed '1,2c Hi' ab#第一行到第二行代替为HiHiend
替换一行中的某部分格式:sed 's/要替换的字符串/新的字符串/g'&& (要替换的字符串可以用正则表达式)[root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby/bird/g'&&& #替换ruby为bird[root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby//g'#删除ruby
插入[root@localhost ruby] # sed -i '$a bye' ab #在文件ab中最后一行直接输入"bye"[root@localhost ruby]# cat abHello!ruby is me,welcome to my blog.endbye
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
稍有积蓄, 积分 231, 距离下一级还需 269 积分
论坛徽章:0
| sed -e :b -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;tb'
如上代码是把数字按照英文格式分割开,实现是成功了,但是我不太看得懂,特别来请各位朋友解释一下。
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
家境小康, 积分 1994, 距离下一级还需 6 积分
论坛徽章:0
一个条件跳转t, 在s成功后跳到lable: b那里.
正则表达式至少匹配末尾4个数字, 然后加上','
PS: ^_^很好的用法...
论坛徽章:7
白手起家, 积分 46, 距离下一级还需 154 积分
论坛徽章:0
\(.*[0-9]\)复制代码
这是什么意思?
白手起家, 积分 46, 距离下一级还需 154 积分
论坛徽章:0
原帖由 Edengundam 于
07:47 发表
一个条件跳转t, 在s成功后跳到lable: b那里.
正则表达式至少匹配末尾4个数字, 然后加上','
PS: ^_^很好的用法...
正则表达式是匹配超过3个数字的所以数字,并在最后三个数字前加&,&,如果替换成功在跳到:b.
可以直接写成这样:sed ':b s/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;tb'&&省个-e& & :)
[ 本帖最后由 veryperson 于
09:43 编辑 ]
白手起家, 积分 72, 距离下一级还需 128 积分
论坛徽章:0
很经典的都
白手起家, 积分 43, 距离下一级还需 157 积分
论坛徽章:0
我有个疑问,这里它是从前往后读数字字符串的,但是实际上应该是从后往前读来分隔才对。当然这里恰好是12个数字,结果都一样。如果不是3的倍数呢,结果又会如何?
家境小康, 积分 1994, 距离下一级还需 6 积分
论坛徽章:0
原帖由 yangsmile 于
14:53 发表
我有个疑问,这里它是从前往后读数字字符串的,但是实际上应该是从后往前读来分隔才对。当然这里恰好是12个数字,结果都一样。如果不是3的倍数呢,结果又会如何?
这个脚本写的好的地方就是从后向前处理的, 你再仔细看看.
稍有积蓄, 积分 231, 距离下一级还需 269 积分
论坛徽章:0
到目前为止,正则表达式算是明白了,但是如何实现循环的,还是没有清楚?
循环是如何实现的呢?从后往前匹配~~多谢多谢
稍有积蓄, 积分 231, 距离下一级还需 269 积分
论坛徽章:0
明白了,谢谢大家啊。求解答 linux sed 命令,sed -i 是什么意思,还有红线语句如何解答_百度知道sed一句话技巧_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
sed一句话技巧
上传于||文档简介
&&s​e​d​命​令
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩6页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢初学sed正则表达式,请懂的人解释下_百度知道}

我要回帖

更多关于 语句解释 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信