sed学习笔记
来源:互联网 发布:现代战争5数据总是重制 编辑:程序博客网 时间:2024/06/05 05:07
选项
-n 不打印;-e 下一命令是编辑命令,使用多条编辑命令时使用该选项;-f 使用sed脚本文件。
查找替换
sed -n 's/123/555&888/g'p a.txt
说明:保存查找串以便在替换串中使用,&代表查找串。
双查找
sed -n '/78/s/99/89/g'p a.txt
说明:sed中允许指定操作的范围,而范围则可以通过行号1,$或者正则表达式/pattern1/,/pattern2/来确定。
查找空行
查找空行
sed -n '/..*/'p a.txt or sed -n '/^$/'!p a.txt
说明:p表示打印有字符的行,!表示不打印没有字符的行。排除空行
sed -n '/^$/'p a.txt or sed -n '/..*/'!p a.txt
说明:p表示打印没有字符的行,!表示不打印有字符的行。
打印范围
sed -n '/#/,/typeset/'p a.txt
说明:位置范围是闭合的,如果结束条件不能满足,一直操作打印到文件结尾,如果结束条件能满足,则继续查找满足开始条件的位置,范围重新开始。
指定分隔符
指定分隔符
pwd|sed's#zy#zy/product#g'
说明:紧跟在s命令后的字符就是查找串和替换串之间的分隔符。分隔符默认为正斜杠,但可以改变。无论什么字符(换行符、反斜杠除外),只要紧跟s命令,就成了新的串分隔符。这在使用sed处理路径时很有用,不过也可以在默认分隔符下使用"\/"表示正斜杠。读入文件
sed '/78/r cmd.txt' a.txt or sed '$r cmd.txt' a.txt
说明:与vi中的:read file命令有些相似,被读入的文件将插入到当前行的下一行,使用r命令时,只能指定/pattern1/r或$r的单一位置,不能是位置范围(/pattern1/,/pattern2/),不指定位置默认对整个文件执行操作。保存到文件
sed '/123/,/78/w b.txt' a.txt or sed '1,$w b.txt' a.txt
说明:将指定位置范围的行保存到某个文件中,类似于筛选后重定向的功能。追加内容
sed '1a\ abc\ def' a.txt or sed '1i\ abc\ def' a.txt
说明:1a和1i的区别在于,前者会在指定行后追加内容,后者则在指定行前追加内容,使用a和i命令时,只能指定/pattern1/a或$a的单一位置,不能是位置范围(/pattern1/,/pattern2/),不指定位置默认对整个文件执行操作。如果要追加的内容超过一行,则除最后一行外,其他各行都必须以反斜杠结尾。过滤某些行
sed '1,$d' a.txt or sed '/123/,/ccc/d' a.txt
说明:将指定位置范围的行删除,保留其他行。修改行内容
sed '1c\ abc\ def' a.txt
说明:该命令将完整的修改在模式缓冲区中的当前行。如果范围模式被匹配,c命令将使用反斜杠后的文本替换匹配到的行。如果要插入的内容超过一行,则除最后一行外,其他各行都必须以反斜杠结尾。退出命令
sed '5q' a.txt
说明:q命令表示退出命令,该命令将导致sed程序退出,且不再进行其他处理。读入下一行
sed '/aaa/{n;s/ccc/NNN/g;}' a.txt
说明:n命令表示下一个命令,sed使用该命令获取输入文件的下一行,并将其读入到模式缓冲区中,任何sed命令都将应用到匹配行紧接着的下一行上。执行多条命令可以使用{cmd1;cmd2...}的方式。执行多条命令
sed -n -e '/78/'p -e'/ccc/'p a.txt
说明:-e表示在同一行执行多条命令。其他命令
sed把当前正在处理的行保存到一个临时缓冲区,这就是模式空间,sed处理完模式空间中的行后,就把该行发送到屏幕上,sed每处理完一行就将其从模式空间中删除,然后将下一行读入模式空间,进行处理和显示。h命令把模式空间中的内容拷贝并覆盖到另一个特殊的缓冲区,叫做暂存缓冲区;H 把模式缓冲区的内容追加到暂存缓冲区;g 把暂存缓冲区的内容覆盖到模式缓冲区;G 把暂存缓冲区的内容追加到模式缓冲区;x 将模式缓冲区和暂存缓冲区中的当前行互换;
0 0
- sed学习笔记
- [转]Sed学习笔记
- sed编辑器学习笔记
- Sed学习笔记
- Sed学习笔记
- Sed学习笔记
- [转]Sed学习笔记
- Sed学习笔记
- sed命令学习笔记
- Sed学习笔记
- Sed学习笔记
- Sed学习笔记
- sed学习笔记
- Sed学习笔记
- [转]sed 学习笔记
- Sed学习笔记
- sed学习笔记
- Sed学习笔记[转]
- jboss1.7中配置域名直接访问
- static全局变量,导致数据冲突严重错误
- 单例模式的七种写法
- Guava学习笔记:Range
- linux grep命令学习与总结
- sed学习笔记
- Java备份和还原MySQL数据库
- Android 通过 Intent 传递类对象
- HDU 2688 Rotate 树状数组
- debug listener in eclipse
- Yale CAS实现原理及其基础协议
- 首个运用工作流的装饰管理软件
- debian 右键选项中打开终端
- nginx文件类型错误解析漏洞