shell脚本中sed的使用详解

sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作

ed编辑器自身不会修改文本文件的数据,它只会将修改后的数据发送到STOUT

s命令会用斜线间指定的第二个文本字符串来替换第一个文本字符串

echo "This is a test" | sed 's/test/big test/'  #This is a big test

在sed命令上执行多个命令时,只要用-e就可以了

sed -e 's/brown/green/; s/dog/cat/' date1  #将date1中brown替换成green,dog换成cat输出到STOUT

sed可以指定作用的行

sed '2s/dog/cat' data  #作用到第2行
sed '2,3s/dog/cat' data #作用到第2,3行
sed '2,$s/dog/cat' data #作用到第2行到结尾行
sed '/Samantha/s/bash/csh' data #作用到匹配Samantha的行上
sed '/rich/s/bash/csh' /etc/passwd #找到含有rich的行,然后用csh替换文本bash

i命令会在指定行前增加一个新行
a命令会在指定的行后增加一个新行
c命令会修改指定的行
y命令用于单个字符的替换 sed y/123/789/ data #data中的1替换成7,2替换成8,3替换成9
r命令允许将一个独立文件中的数据插入到数据流中

$ cat data
This is an added line.
This is the second added line
$ sed '3r data' test
This is line number 1
This is line number 2
This is line number 3
This is an added line.
This is the second added line
This is line number 4
This is line number 5
This is line number 6
This is line number 7
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,239评论 2 33
  • 本文承接之前写的三十分钟学会AWK一文,在学习完AWK之后,趁热打铁又学习了一下SED,不得不说这两个工具真的堪称...
    mylxsw阅读 4,417评论 3 74
  • 简介 sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(p...
    699b979fc4da阅读 1,029评论 0 1
  • Sed工具工作原理及特性 1. sed是流编辑器,每一次读取一行到内存中,即称之为模式空间(pattern spa...
    魏镇坪阅读 11,037评论 0 12
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 8,224评论 1 19