日期:2014-05-16  浏览次数:20976 次

Linux sed命令用法

内容来自互联网

Linux sed命令用法

?

linux 下 读取某个文件的某一行或者某几行

查看文件song.txt的第190行到196行,?

sed -n '190,196p' song.txt?

如果查看某一行用?

sed -n '190,1p' song.txt即可?

sed -n 'a,bp' song.txt读取自第a行到第b行的数据?

if(a > b ) return 第a行

?

sed命令详解?

? ? ?sed用法 sed是一个非交互性文本流编辑器,它编辑文件或标准输入导出的文件拷贝。可以在命令行输入sed命令,?

也可以在一个文件中写入命令,在使用sed时,sed并不于初始化文件打叫道,它操作的只是一个拷贝,然后所有的改动?

如果没有重定向到一个文件,将输出到屏幕。因为sed是一个非交互性编辑器,必须通过行号或正规表达式指定要改变?

的文本行。?

1、sed怎么读取数据:sed从文件的一个文本行或从标准输入的几种格式中读取数据,将之拷贝到一个编辑缓冲区,然后?

读命令行或脚本的第一命令,并使用这些命令查找模式或定位行号编辑它,重复此过程命令结束。?

2、调用sed:调用sed有三种方式在命令行键入命令;将sed命令插入脚本文件,然后调用sed;将sed命令插入脚本文件,?

并使sed脚本可执行。?

? ? 2.1sed命令格式:?

? ?sed [选项] sed命令输入文件 ? ? ? ? 【命令行在使用sed时,实际命令要加单引号。sed也允许加双引号】?

? ?sed [选项] -f sed脚本文件输入文件?

? ?sed选项如下:?

? ? n 不打印 ?【sed不编辑行到标准输出,缺省为打印所有的行】?

? ? p 命令可以用来打印编辑行?

? ? c 下一命令是编辑命令,使用多项编辑时加入此选项,如果只用到一条sed命令,此选项无用,但指定它也没有关系?

? ? f 如果正在sed脚本文件,使用此选项,此选项通知sed一个脚本文件支持所有的sed命令?

? ? ?sed -f myscript.sed ?input_file ? ?【myscript.sed即为支持sed命令的文件】?

? ? 2.2保存sed输出?

? ? 由于不接触初始化文件,如果想要保存改动内容,简单地将所有输出重定向到一个文件即可,例如:?

? ? #sed ’some-sed-commands‘ input-file >myoutfile?

? ? 2.3使用sed在文件中查询文本的方式?

? ? sed浏览输入文件时,缺省从第一行开始,有两种方式定位文本?

? ? ?1.使用行号,可以是一个简单数字或一个行号范围?

? ? ?2.使用正规表达式?

? ? 使用sed定位文本的一些方式:?

? ? ?x (x为行号,如1?

? ? ?x,y (表示行号范围从x到y行,如2,5表示从第2行到第5行?

? ? ?/pattern/ (查询包含模式的行。如/disk/或/[a-z]/?

? ? ?/pattern/pattern/ (查询包含两个模式的行,例如/disk/disks/?

? ? ?/pattern/ ,x ?(在给定行号上查询包含模式的行。例如/ribbon/,3?

? ? ?x,/pattern/ ? ?(通过行号或模式查询匹配行。例如3,/vcd/?

? ? ?x,y!查询不包含指定行号x和y的行。例如1,2!?

? 2.4基本sed编辑命令?

? ? ?p 打印匹配行?

? ? ?= 显示文件行号?

? ? ?a\ ?在定位行号后附加新文本信息?

? ? ?i\ 在定位行号后插入新文本信息?

? ? ? ? d 删除定位行?

? ? ?c\ 用新文本替换定位文本?

? ? ?s 使用替换模式替换相应模式?

? ? ?r 冲另一个文件中读取文件?

? ? ?w 写文本到一个文件?

? ? ?q 第一个模式匹配完成后推出或立即推出?

? ? ?| 显示与八进制ASCII代码等价的控制字符?

? ? ?{} 在定位执行的命令组?

? ? ?n 从另一个文件中读文本下一行,并附加在下一行?

? ? ?g 将模式2粘贴/pattern n/?

? ? ?y 传送字符?

? ? ?n 延续到下一输入行;允许跨行的模式匹配语句。?

? ?sed识别任何基本正规表达式和模式及其匹配规则,如果要定位一特殊字符,必须使用(\)屏蔽其特殊含义?

? 例如:1.打印第2行?