LINUX—SED简单使用

SED简介

sed 全名叫 stream editor,流编辑器,用程序的方式来编辑文本。

SED使用

替换参数s

#使用yours替换my,g表示替换改行所有匹配项
sed "s/my/yours/g" demo.txt
#指定行替换
sed "3s/my/yours/g" demo.txt
#指定多行替换
sed "3,6s/my/yours/g" demo.txt
#只替换每行第二个
sed "s/my/yours/2" demo.txt
#替换每行第2个以后的匹配项
sed "s/my/yours/2g" demo.txt
#多个匹配替换
sed "1,3s/my/yours/g; 2,$s/my/yours/g" demo.txt
#圆括号匹配后作为变量使用,1 2分别表示语句前面匹配的数据
sed 's/my ([^,&]*),.*is (.*)/1:2/g' my.txt

增加参数a和i

#a参数表示增加 i参数表示插入,他们都是用于添加行的
#插入一行数据
sed "1 i this is my" demo.txt
#增加一行数据在最后
sed "$ a this my word" demo.txt
#匹配到的每行都增加
sed "/my/a ---" demo.txt

替换命令c

#将指定的行做替换
sed "2 c my word" demo.txt
#匹配的行做替换
sed "/my/c my word" demo.txt

删除命令d

#删除匹配的行
sed "/fish/d" dem 大专栏  LINUX—SED简单使用o.txt
#删除指定行
sed "2d" demo.txt
sed "2,$d" demo.txt

输出命令p

#匹配的行输出,被匹配到的行会输出两次
sed "/fish/p" demo.txt
#值输出匹配到的行
sed -n "/fish/p" demo.txt
#匹配行之间的输出
sed -n "/dog/,/fish/p" demo.txt
#指定行到匹配行输出
sed -n "1,/fish/p" demo.txt

相关选项

#-e 参数
如果需要用 sed 对文本内容进行多种操作,则需要执行多条子命令来进行操作。
sed -e 's/hello/A/' -e 's/world/B/'
#-i 参数
sed 默认会把输入行读取到模式空间,简单理解就是一个内存缓冲区,sed子命令处理的内容是模式空间中的内容,而非直接处理文件内容。因此在 sed 修改模式空间内容之后,并非直接写入修改输入文件,而是打印输出到标准输出。如果需要修改输入文件,那么就可以指定 - i 选项。
#-f 参数
还记得 -e 选项可以来执行多个子命令操作,用分号分隔多个命令操作也是可以的,如果命令操作比较多的时候就会比较麻烦,这时候把多个子命令操作写入脚本文件,然后使用 -f 选项来指定该脚本。

参考资料

  1. sed 入门详解教程
  2. sed 简明教程

原文地址:https://www.cnblogs.com/dajunjun/p/11724070.html

时间: 2024-08-11 22:21:06

LINUX—SED简单使用的相关文章

理解linux sed命令

理解linux sed命令(2010-02-27 18:21:20) 标签:linuxshellsed替换 分类:革命本钱 1. Sed简介sed是一种在线编辑器,它一次处理一行内容.处理时,把当 前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有改变,除非你使用重定向存储输出.Sed主要用来自动编辑一个或多个文件:简化对文件的反

linux sed&awk详解

sed sed为文本处理三剑客之一.本身就是一个管道命令,可以将文件进行增加,修改,删除,选取等操作. 格式:sed [-nrefi] [command] "文本字符串" 选项: -r: 支持扩展正则表达式: -n: 静默模式:(sed有个模式空间和保持空间,默认sed会将执行的结果保存到模式空间里面,而模式空间默认情况是输出在屏幕上,加了-n,则阻止将模式空间的内容输出到屏幕上) -f:/path/to/script_file:从指定的文件中读取脚本并运行 -e script1 -e

就linux三剑客简单归纳

就linux三剑客简单归纳: 1:awk 习题1:用 awk 中查看服务器连接状态并汇总 netstat -an|awk '/^tcp/{++s[$NF]}END{for(a in s)print a,s[a]}' ESTABLISHED 1 LISTEN 20 习题2:统计 web 日志访问流量,要求输出访问次数,请求页面或图片,每个请求的总大小, 总访问流量的大小汇总 awk '{a[$7]+=$10;++b[$7];total+=$10}END{for(x in a)print b[x],

linux sed 批量替换多个文件中的字符串

转载:http://blog.csdn.net/kauu/article/details/1757325 一.linux sed 批量替换多个文件中的字符串 sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir` 例如:替换/home下所有文件中的www.bcak.com.cn为bcak.com.cn sed -i "s/www.bcak.com.cn/bcak.com.cn/g" `grep ww

linux sed 批量替换多个文件中的字符

格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` linux sed 批量替换多个文件中的字符串 sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir` 例如:替换/home下所有文件中的www.admin99.net为admin99.net sed -i "s/www.admin99.net/admin99.net/g" `grep w

Linux sed命令小结

1.什么是sed sed,流编辑器,即stream editor.它可以将文本文件的每一行读取到内存,即所谓sed的模式空间,在这个模式空间中可以进行编辑并输出. 2.sed的使用格式 sed [options] "AdressCommand" file1,file2,... 说明: a.Adress实际上是用来确定编辑文件的范围,可以是精确的某一行,也可以是从某一行到某一行,也   可以用正则进行过滤匹配. b.Command表示将符合Address的行进行XXX操作.注意默认情况下

Linux shell ${}简单用法

转自:Linux shell ${}简单用法 为了完整起见,我这里再用一些例子加以说明 ${ } 的一些特异功能:假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt我们可以用 ${ } 分别替换获得不同的值:${file#*/}:拿掉第一条 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt${file##*/}:拿掉最后一条 / 及其左边的字符串:my.file.txt${file#*.}:拿掉第一个 . 及其左边的字符串:fil

Linux sed 替换第一次出现的字符串

/********************************************************************************* * Linux sed 替换第一次出现的字符串 * 说明: * 需要替换配置文件中第一次出现的文本内容. * * 2016-12-16 深圳 南山平山村 曾剑锋 ********************************************************************************/ 一.参考

learn Linux sed command

learn Linux sed command 一.参考文档: 1. sed命令详解 http://qifuguang.me/2015/09/21/sed%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3/ 2. linux之sed用法 http://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html 3. Sed 的man手册参数详细解释(一) http://blog.csdn.net/imfinger/a