linux初学习之sed

来源:互联网 发布:windows10系统优化设置 编辑:程序博客网 时间:2024/05/02 00:58

定义理解:

本次记录sed文本处理工具的学习过程。

sed是流编辑器,它是一个将一系列编辑命令作用于一批文本文件的理想工具。

sed是一个非交互式文本编辑工具,它可对文本文件和标准输入进行编辑,标准输入可以是来自键盘输入、文件重定向、字符串、变量、甚至来自于管道的文本。

(首先将文件分成以行为单位,然后将每一行逐次的放入缓冲区(模式空间),sed将其处理完毕后发送到标准输出,处理完最后一行sed便运行结束。由于sed是对存储在缓冲区的文件进行编辑,因此,sed不会修改或者损坏正在编辑的文件。)
sed只是对缓冲区中原始文件的副本进行编辑,并不编辑原始的文件。
 

使用方法:

调用sed的三种方式:
 
1.在shell命令行输入命令调用sed,格式为:
  sed  [选项]  ‘sed命令’  输入文件
 
2.将sed命令插入脚本文件后,然后通过sed命令调用它,格式为:
  sed  [选项]  -f sed脚本文件  输入文件
 
3.将sed命令插入脚本文件后,设置该脚本为可执行,然后直接执行该脚本文件,格式为:
  ./sed脚本文件  输入文件
 
                                                     sed命令选项及其意义
选项意义-n不打印所有行到标准输出-e表示将下一个字符串解析为sed编辑命令,如果只传递一个编辑命令给sed,-e选项可以省略-f表示正在调用sed脚本文件
 
sed作为文件编辑器,由定位文本行sed编辑命令两部分组成,sed编辑命令对定位文本行进行各种处理。P.62
 
$在正则表达式中代表行尾,但是在sed命令中却表示最后一行。sed编辑命令可以放到单引号内,也可以放到单引号外。
 
 
替换文本:
s/被替换的字符串/新字符串/[替换选项]
 
                                    sed替换选项及其意义
选项意义g表示替换文本中所有出现被替换字符串之处p与-n选项结合,只打印体换行w 文件名表示将输出定向到一个文件
 
sed替换命令在默认情况下,即 不带g选项时,对某行的第一处关键字替换后,就跳转到下面匹配行。只有当被替换字符串在某行出现2次以上时,g选项才发挥作用。
sed替换文本命令还可指定替换第几次匹配的关键字,只需在选项后面加上相应的数字即可,数字范围在1~512之间,如:
sed ‘s/seu/njue/2p’  文件名  :替换每行中第二次出现的关键字。
 
 
sed中的&符号介绍:
&符号可用来保存被替换的字符串以供调用
sed  -n  's/seu/(&)/pg'   文件  <等价于>  sed  -n  's/seu/(seu)/pg'   文件
也就是说&保存了被替换文本“seu”,所以等价。
 
 
显示控制字符:
控制字符就是非打印字符,如退格键、F1键、Shift键等。
sed l命令(L的小写)
 
-e与{}:
上面写的命令选项-e可以连接多个命令,实现对匹配行的多项操作。{}编辑命令可以实现和-e同样的效果,如下:
sed -n  -e  '/Zhang/p'  -e  '/Zhang/='  文件
sed -n  '/Zhang/{p;=}'   文件
 
 
以上是本次sed命令的学习。如有理解错误,望告知!共同学习,共同进步……