sed
sed 是一种流编辑器, 它是文本处理中非常中的工具, 能够完美的配合正则表达式使用, 功能不同凡响处理时, 把当前处理的行存储在临时缓冲区中, 称为模式空间 (pattern space), 接着用 sed 命令处理缓冲区中的内容, 处理完成后, 把缓冲区的内容送往屏幕接着处理下一行, 这样不断重复, 直到文件末尾文件内容并没有 改变, 除非你使用重定向存储输出 Sed 主要用来自动编辑一个或多个文件; 简化对文件的反复操作; 编写转换程序等
- sed -n 5p test.txt // 输出第 5 行
- sed -n 1,5p test.txt // 输出 1-5 行
- sed -n 1,$p test.txt // 输出第一行到最后一行,$ 指最后一行
- sed -n /root/p test.txt // 输出含有 root 的行
- sed -n /root/Ip test.txt // 输出含有 root 的行, 不区分大小写
- sed -n /^1/p test.txt // 输出以数字 1 开头的行
- sed -n /in$/p test.txt // 输出以 in 结尾的行
- sed -n /r..o/p test.txt // 输出 ro 中间有两个字符的行
- sed -n oo*p test.txt // 输出 o+o 重复 n 次的行
- sed -e 1p -e /111/p -n test.txt // 输出第一行和含有 111 的行
- sed 1d test.txt // 删除第一行 (只是输出到屏幕, 文件内容不变)
- sed -i 1d test.txt // 删除第一行 (文件内容改变)
head test.txt|sed -r s/([^:]+):(.*):([^:]+)/\3:\2:\1/ 以: 分隔, 将第一段和最后一段字符互换位置
sed - r s / (. * ) / abc: &/ test.txt $ 在每一行前面增加 abc: sed 1,
- 3d test.txt // 删除第 1-3 行
- sed / oot / d test.txt // 删除有 oot 的行
- sed 1,
- 2s / ot / to / g test.txt // 将前两行的所有 ot 替换为 to
- sed s#ot#to#g test.txt // 将所有的 ot 替换为 to
- sed s / [0 - 9] //g test.txt // 将所有数字替换为空
- sed s / [a - zA - Z] //g test.txt // 将所有字母替换为空
- sed - r s / (rot)(. * )(bash) / \3\2\1 / test.txt // 将开头是 rot, 结尾是 bash 的行中, rot 与 bash 换位置
sed s / ^. * $ / 123 & / test.txt $ 所有行前增加 123 sed - i s / ot / to / g test.txt // 将 ot 改为 to(改变文件内容)
来源: http://www.bubuko.com/infodetail-2526692.html