sed命令简单总结
来源:互联网 发布:手机mv录制软件 编辑:程序博客网 时间:2024/05/22 17:44
今天看到sed命令,感觉有点小绕,在此总结下
前言
sed 是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace ),接着用sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。主要用来自动编辑一个或多个文件, 简化对文件的反复操作,编辑文本要用对工具会事半功倍。
用法
sed的用法格式
sed [option]... 'script' inputfile
常用选项
-n:不输出模式空间里的内容到标准输出,即不自动打印,但有时会需要自动打印,例如删除、插入后查看显示结果
-e:多点编辑,相当于执行与(&)命令
-f:/PATH/SEDFILE从指定文件读编辑脚本,实现批量修改
-r:支持扩展正则表达式
-i.bak:修改源文件后并把源文件做备份文件名为file.bak
script:
script用' 地址+命令 '表示
地址:
1. 不给地址:对全文进行修改,和后面的s:搜索替换命令范围区分开
2. 单地址:
3. 地址范围:#:指定的行/pattern/:被模式匹配到的每一行,里面用正则表达式,用的挺多
#,# 从第#行到第#行#,+# 从第#行加#行/part1/,/part2/ 被part1匹配到的行到被part2 匹配到的行#,/part1/ 从第#行到被part1匹配到的行注:这些可以混合使用,比较灵活4. ~:步进
1~2 奇数行,从第一行开始每两行包括第一行
2~2 偶数行,从第二行开始每两行包括第二行
命令:
d:删除模式空间匹配的行,再进行下一轮循环,是删除整行!
p:打印当前模式空间的内容,追加到默认输出,当不加-n选项是会打印两遍
a[\]text:在指定行后追加内容(整行),支持用\n多行追加,但要记得加引号(单双一样),\只是表示分隔,用来识别命令和追加的文本的
seq 10 | sed "2i\gg\nGG"i[\]text:在指定行前面插入文本(整行),支持用\n多行追加,但要记得加引号(单双一样),\只是表示分隔,用来识别命令和追加的文本的
c[\]text:替换指定行,支持用\n多行替换一行或多行。
w /path/somefile:保存模式匹配的行至指定文件
r /path/somefile:读取指定文件的文本至模式空间中匹配到的行后
=:为模式空间中的行打印行号(=跟在模式匹配后面,但是要和其他命令分开用),
[root@centos7 app]#seq 10 | sed -n -e '6p' -e '6='66!:模式空间中匹配的行取反处理
s///:查找替换,可能查找内容里也有/,所以还支持其他分隔符@#都可以
替换标记:
g:行内全局替换
p:显示替换成功的行,一般和 -n 一起用
w:/PATH/FILE:将替换成功的行保存至文件
[root@centos7 app]#seq 10 | sed -n 's/6/gg/pw file'
阅读全文
1 0
- sed命令简单总结
- vim,sed简单命令
- sed 命令 使用 总结
- SED命令总结
- sed命令用法总结
- sed命令学习总结
- sed命令总结
- sed命令使用总结
- Sed命令用法总结
- sed命令总结
- linux sed 命令总结
- sed 用法简单总结
- sed命令简单使用-显示
- linux sed命令使用总结
- 关于sed命令的打印总结
- linux学习之sed命令总结
- sed,awk,grep,cut命令总结
- sed命令简单使用-D命令-结束本轮循环
- 各种基本的排序算法在Object-C实现
- Qt笔记 之 QListWidget控件的使用
- continue 和 return
- less
- css遇到的居中问题整理
- sed命令简单总结
- PHP 获取要删除数据库表中的数据插入新的表再原删除数据
- 项目管理之功能接口与界面
- 面试题7:用栈来实现队列的功能。
- 常见数据结构在内存中是怎么存储的
- 分布式系统学习笔记
- Spring中的AOP(六)——基于XML配置文件方式的AOP
- Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
- 011讲一个程序的知识点