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使用的主要内容,如果未能解决你的问题,请参考以下文章