标签:
sed:是一个非交互性文本流编辑器,可编辑大或小的文件,sed命令定时编辑,删除文件; 一次性处理所有改变。 sed不与原文件打交道,只是操作源文件的一个拷贝,然后所有的改动输出到一个文件,并输出到屏幕。 调用sed的三种方式: 1.命令行键入命令 2.将sed命令插入脚本文件,然后调用sed 3.将sed命令插入脚本文件,并使sed脚本可执行?自动执行? 调用sed 1.命令格式 sed [选项] sed命令 输入文件 2.使用sed脚本 sed [选项] -f sed脚本文件 输入文件 3.使用第一行具有sed命令解释器的sed脚本文件 sed脚本 [选项] 输入文件 选项: n 不打印 c 下一命令是编辑命令[无用] f 正在调用sed脚本文件 保存sed命令,可以使用重定向方式:sed ‘sed_cmd‘ input_file > outfile sed浏览文件时,默认从第一行开始浏览,若想定位文本,有2种方式: 1.使用行号,单行或多行(范围) 2.正则表达式 使用sed在文件中定位文本的方式 —————————————————————————————————————————————————————————————————— x x为行号,如1 x,y 表示行号范围从x到y /pattern/ 查询包含模式的行。例如/disk/或/[a-z]/ /pattern/pattern/ 查询包含两个模式的行,例如/disk/disks/ pattern/,x 在给定行号上查询包含模式的行,例如/ribbon/,3 x,/pattern/ 通过行号和模式查询匹配行,3,/vdu/ x,y! 查询不包含指定行号x和y的行,1,2! —————————————————————————————————————————————————————————————————— sed编辑命令 ———————————————————————————————————————————————————————— p 打印匹配行 = 显示文件行号 a\ 在定位行号后附加新文本信息 i\ 在定位行号后插入新文本信息 d 删除定位行 c\ 在新文本替换定位文本 s 使用替换模式替换相应模式 r 从另一个文本中读取文本 w 写文本到一个文件 q 第一个模式匹配完成后推出或立即推出 l 显示与八进制ASCII代码等价的控制字符 {} 在定位行执行的命令组 n 从另一个文本中读取下一行,并附加在下一行 g 将模式2粘贴到/pattern n/ y 传递字符 n 延续到下一输入行;允许跨行的模式匹配语句 —————————————————————————————————————————————————————————— 建立一个文件: vi quote.txt pg quote.txt the honeysuckle band played all night long for noly $90. It was an evening of splendid music and company. Too bad the disco floor fell through at 23:10. The local nurse Miss P.Neave was in attendance. 打印首行: sed -n ‘1p‘ quote.txt The honeysuckle band played all night long for noly $90. 打印最后一行: sed -n ‘$p‘ quote.txt The local nurse Miss P.Neave was in attendance. 打印整个文件,格式:1,$p sed -n ‘1,$p‘ quote.txt The honeysuckle band played all night long for noly $90. It was an evening of splendid music and company. Too bad the disco floor fell through at 23:10. The local nurse Miss P.Neave was in attendance. 打印指定行 sed -n ‘4p‘ quote.txt The local nurse Miss P.Neave was in attendance. 使用正则表达式 打印包含was单词的行; sed -n ‘/was/‘p quote.txt[or sed -n ‘/was/p‘ quote.txt] It was an evening of splendid music and company. The local nurse Miss P.Neave was in attendance. 检索数据:打印出现以ing结尾单词的行 sed -n ‘/.*ing/‘p quote.txt It was an evening of splendid music and company. 查找包含$符号的行: sed -n ‘/\$/‘p quote.txt The honeysuckle band played all night long for noly $90. 筛选出一行,格式:line_num,/pattern/ sed -n ‘4,/was/‘p quote.txt The local nurse Miss P.Neave was in attendance. 打印每行的行号: sed -e ‘=‘ quote.txt 1 The honeysuckle band played all night long for noly $90. 2 It was an evening of splendid music and company. 3 Too bad the disco floor fell through at 23:10. 4 The local nurse Miss P.Neave was in attendance. 打印包含was单词的行的行号: sed -n ‘/was/=‘ quote.txt 2 4 包含was的行: sed -n ‘/was/‘p quote.txt It was an evening of splendid music and company. The local nurse Miss P.Neave was in attendance. 打印包含music的行号,和行数据: sed -e ‘/music/=‘ -n -e ‘/music/p‘ quote.txt 2 It was an evening of splendid music and company.
标签:
原文地址:http://www.cnblogs.com/theCambrian/p/4627234.html