D.H.Q的烂笔头

Just code for fun~

Articles about: sed

linux命令学习 -- sed

sed(streams editor) 是一个文件处理的编辑器,具有对文件数据进行新增、替换、删除、打印、取代特定行数据等功能。它本身是一个管道命令,操作文件数据时,先把文件数据的每一行数据放在一个临时的缓冲区,然后再执行指定的操作,最后处理完再把数据显示输出。如果没有指定直接修改的选项,sed是不会改变文件的数据。

sed 的用法格式:

sed [选项] '操作命令' 被操作的文件

例如有一个test.txt的文件,内容如下:

a
b
c
d
e
$
abcdefghijklmnopqrstuvwxyz

想删除文件里的第2和第3行,可以这样写sed:

sed -e '2,3d' ./test.txt

可以看到,文件text.txt原来第2和第3行的数据"b"、"c"是不会显示出来。上面“-e”是选项,“'2,3d'”是操作命令(命令要以两个引号''括住),“./test.txt”是要被操作的文件。

常用的sed选项:

  • -n : (或--quiet或--silent)安静(silent)模式,只显示操作命令处理后的数据,例如要显示第2和第3行数据,可以对比查看“sed -n '2,3p' ./test.txt”跟“sed '2,3p' ./test.txt”的输出区别
  • -e : 后跟操作命令(script),表示以指定的操作命令来处理输入的文件数据,例如上面的:sed -e '2,3d' ./test.txt
  • -f : 把sed的操作命令写在一个文件里, 例如:sed [选项] -f scriptfile filename,-f scriptfile则可以执行scriptfile内的sed操作命令
  • -r : sed的动作支援的是延伸型正则表达式的语法。(预设是基础正则表达式语法)
  • -i : 直接修改读取的文件数据,而不是在屏幕上输出
  • -h : (或--help)显示帮助
  • -V : (或--version)显示版本信息

更多的sed选项信息可以"sed -h"输出查看。

继续阅读 »
返回顶部