Linux--sed使用

Posted ZhiRuSi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux--sed使用相关的知识,希望对你有一定的参考价值。

Sed:字符流编辑器(stream editor)

功能:完成对多个文件的一系列编辑工作

相关内容:应用正则表达式语法,与shell进行交互,脚本编写

sed是行编辑器。与之对应非常的熟悉的全屏幕编辑器是vi

使用行编辑器,每次可以处理一行,

例如 : $ ed test 将显示的最后一行,p 显示当前的行,如果要进行后续对行的操作,就需要移至对应行,直接输入对应行的数字num,在输入对应的命令进行操作;

例如: 删除15行的数据,则进行   15   D;

还可以用使用啧啧表达式作为一个地址,例如删除包含单词“regular”的行,可以使用:/regular/d

替换的语法是:  【address】s/pattern/replacement/flag  -- pattern是正则表达式,用replacement替换这个正则表达式中匹配的字符串,例如: s/regular/complex/ ,如果当前行出现多次,则需要使用字符g :s/regular/complex/g ;如果要将它应用到所有的行则需要在地址前在放置一个g  :g/address/regular/complex/g;

sed命令行的语法:

commond [options] script filename  -- script 指定要执行的指令 ,假如它包含有可以有shell解释的空格或者任意字符(例如$和*),那么它必须由单引号括起来;

命令:sed -f    -f选项允许你指定脚本文件的名字,在sed的操作中,每个程序每次从输入文件中读取一个输入行,生成改输入行的备份,并且对该备份行执行脚本指定的指令,因此,对输入行所做的改动不会影响真正的输入文件;因此只有重定向sed的输出到另一个程序中,才能够捕获文件中的输出。

例如:$ sed -f sedscr list > newlist   注意不要将文件输出重定向到正在比阿尼机的文件中,否则就会使它变成乱码;

sed的默认操作时输出每个输入行。-n选项可以阻止自动输出。当指定该选项时,每个要生成输出的指令都必须包含打印命令P

sed -e  编辑随后的指令  sed -f 跟随脚本中的文件名  sed -n 阻止输入行的自动输出   sed -i  修改原文件

 

以上是关于Linux--sed使用的主要内容,如果未能解决你的问题,请参考以下文章

Linux sed 写命令常见使用案例

Linux sed 删除行命令常见使用详解

linux sed命令

Linux--sed使用

Linux sed 打印模式空间p命令使用案例

linux sed命令就是这么简单