Welcome 微信登录

首页 / 操作系统 / Linux / Linux脚本Bash中的文本利器-sed

sed并不会改变原文件,所以的操作是原文件的一个拷贝,可以将结果重定向到新文件。在使用的时候用的最多的是三种方式(在命令行键入命令;将 s e d命令插入脚本文件,然后调用 s e d;将s e d命令插入脚本文件,并使s e d脚本中的一种)中的命令行键入方式。格式:sed [选项] s e d命令 输入文件。*选项---------------------------------------------------------s e d选项如下:n 不打印;s e d不写编辑行到标准输出,缺省为打印所有行(编辑和未编辑)。 p 命令可以用来打印编辑行。c 下一命令是编辑命令。使用多项编辑时加入此选项。如果只用到一条 s e d命令,此选项无用,但指定它也没有关系。f 如果正在调用s e d脚本文件,使用此选项。此选项通知 s e d一个脚本文件支持所有的s e d命令,例如:sed -f myscript.sed input_file,这里m y s c r i p t . s e d即为支持s e d命令的文件。---------------------------------------------------------*查找匹配使用s e d在文件中定位文本的方式:---------------------------------------------------------x x为一行号,如1x , y 表示行号范围从x到y,如2,5表示从第2行到第5行/ p a t t e r n / 查询包含模式的行。例如/ d i s k /或/[a-z]/ / p a t t e r n / p a t t e r n / 查询包含两个模式的行。例如/ d i s k / d i s k s /p a t t e r n / , x 在给定行号上查询包含模式的行。如/ r i b b o n / , 3x , / p a t t e r n / 通过行号和模式查询匹配行。3 ,/ v d u /x , y ! 查询不包含指定行号x和y的行。1 , 2 !---------------------------------------------------------sed编辑命令:---------------------------------------------------------*p 打印匹配行sed "/np" in.txtsed "/pattern/"p in.txt*= 显示文件行号sed -e "/pattern/=" in.txt (all lines)sed -n "/pattern/=" in.txt (only cared lines)*a 在定位行号后附加新文本信息sed [address]a*i 在定位行号后插入新文本信息sed [address]i*d 删除定位行 [ a d d r e s s [,a d d r e s s ] ] d*c 用新文本替换定位文本 [ a d d r e s s [,address]] s/ pattern-to-find /replacement-pattern/[g p w n]*s 使用替换模式替换相应模式sed -n "/op/np &/p" text.txt*r 从另一个文件中读文本sed "/begin-pattern./r in.txt" out.txt*w 写文本到一个文件sed "/begin-pattern/ w in.txt" out.txt*q 第一个模式匹配完成后推出或立即推出ex: sed "/.a.*/q" in.txt*l 显示与八进制A S C I I代码等价的控制字符{ } 在定位行执行的命令组n 从另一个文件中读文本下一行,并附加在下一行g 将模式2粘贴到/pattern n/y 传送字符n 延续到下一输入行;允许跨行的模式匹配语句---------------------------------------------------------*快速一行命令---------------------------------------------------------‘s / . $ / / g’ 删除以句点结尾行‘-e /abcd/d’ 删除包含a b c d的行‘s / [ ] [ ] [ ] * / [ ] / g’ 删除一个以上空格,用一个空格代替‘s / ^ [ ] [ ] * / / g’ 删除行首空格‘s / . [ ] [ ] * / [ ] / g’ 删除句点后跟两个或更多空格,代之以一个空格‘/ ^ $ / d’ 删除空行‘s / ^ . / / g’ 删除第一个字符‘s /CO L ( . . . ) / / g’ 删除紧跟C O L的后三个字母‘s / ^ / / / g’ 从路径中删除第一个‘s / [ ] / [ ] / / g’ 删除所有空格并用t a b键替代‘S / ^ [ ] / / g’ 删除行首所有t a b键‘s / [ ] * / / g’ 删除所有t a b键---------------------------------------------------------Linux的脚本Bash中find和grepTweak - Linux下的16进制编辑器相关资讯      Linux脚本 
  • 获取Linux服务器基本信息脚本  (02月17日)
  • Linux 批量拷贝数据脚本  (03/05/2015 10:47:12)
  • 简单的Linux脚本程序  (11/10/2013 08:45:07)
  • Linux定时??务中用脚本代替可执行  (06/06/2015 06:37:39)
  • Linux下的flashback脚本  (05/21/2014 08:25:05)
  • Linux下记录所有用户操作的脚本  (07/29/2013 08:33:39)
本文评论 查看全部评论 (1)
表情: 姓名: 字数


评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容