sed
- sed也能实现grep的功能,但是有些麻烦,而且没有颜色显示。
- sed的强项在于替换,替换一些指定的字符。
- 比如grep中的 . * |都可以在sed中实现,但是要加上/ / 和p (这里只加p的话,匹配的含有root的 会连续打印两次,不加关键词,会将所有文件内容连续打印两次。)
- 只打印关键词的行 就要加上-n
- 同样支持 . * 但是看起来麻烦 没有颜色显示。
- +也可以用 和grep一样 也需要脱译 这里是加-r
- | 和{}也一样支持 记得加-r
- sed 可以打印指定行数,打印行数不用加/ 可以直接用单引号加数字,也可以打印指定多行加逗号 也可以指定 行数 到行末打印出来。$表示行末。
- -e 是表示在同一个表达式里 做多个操作,不仅指定打印第几行 还匹配字符串。 类似于 平常命令行下 ;的功能 一个命令行 执行两个命令。
- 如果两个表达式 所要表达的东西是一致的 就会打印出来两行。
- 在sed 中 要显示大小写 就是要加大写的字母I 在p的前面。
- 如果想在一个很大的文件中删除某些行 用vim去dd删除是很费时间和内存的,sed 就可以删除。-i 和后面加d 只加d 是显示出你剩下的行。但是文件中是没有删除的。
- 还可以指定 单词。
- sed 好用的地方在于可以替换。 sed ‘10,30s/root/toor/g‘ test.txt.bak
- s是替换的关键词,g是全局替换。
- 正则中的特殊符号也可以适用于替换, sed ‘10,30s/ro+/r/g‘ test.txt 比如这个,意思就是 替换 ro+ 为r +代表的是+前面的重复1-n次, 这个文件中 能重复1-n次的只有root 所以替换结果就是 rt 记得加-r 脱译。
- 也可以进行 前后内容替换 。s表示替换, [^:]+表示 :前面的多个字符。 ()表示一个整体 一部分。
- 这里也会遇到和vim一样的情况 比如把root 更换为123 /不脱译就会报错。 不脱译就更换特殊符号 就行了。
- 假设 删除文档中所有的英文字母,就可以取所有的字母 然后替换为空就行了。
- 实验做出在所有行前面加上一串字符串。(.* ) 表示所有的行, &表示 括号里的内容。
原文地址:http://blog.51cto.com/13645927/2108241
时间: 2024-10-01 04:40:28