学习笔记第二十六节课

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 /不脱译就会报错。 不脱译就更换特殊符号 就行了。
  • 学习笔记第二十六节课
  • 假设 删除文档中所有的英文字母,就可以取所有的字母 然后替换为空就行了。
  • 学习笔记第二十六节课
  • 实验做出在所有行前面加上一串字符串。(.* ) 表示所有的行, &表示 括号里的内容。
  • 学习笔记第二十六节课

猜你喜欢

转载自blog.51cto.com/13645927/2108241