sed

  • sed的强项是替换字符,但是也可以筛选,不过没有颜色高亮显示
  • sed-LMLPHP
  • 如图,sed '/root/'p test.txt
  • 如果要筛选字符,必须写在 '//' 中间,是特定格式
  • 所以想搜索关键字 root 就要写作 '/root/'
  • 旁边的 p 表示print打印,如果不写,就不会显示任何信息
  • 写了 p 筛选内容才会显示在屏幕上
  • 后面test.txt是想搜索的文件名称
  • 但是这样有一个问题,如图,执行命令后出现很多不需要的信息
  • 这是因为筛选完成后,这条命令还会把文件内的全文都打印到筛选信息下面
  • 如图,第一行和第二行一模一样
  • 第一行就是命令筛选出来的信息,第二行开始就是原文件全文的内容
  • 所以如果不想执行命令后,把原文件内容也打印出来,需要使用参数 n
  • sed-LMLPHP
  • 如图,使用 -n 参数,下面就只会显示筛选出来的信息,不会有原文的内容

  • sed-LMLPHP
  • 如图,还可以使用正则符号 + 来筛选
  • 但是需要使用 r 参数,或者脱义+号如 +
  • 参数 r 功能类似 grep 的参数 -E
  • 使用了r参数就可以直接识别一些需要脱义的字符

  • sed-LMLPHP
  • 还可以直接选择显示某一行
  • 如图,sed -n '2'p test.txt 就可以直接显示原文件第二行内容
  • 写数字可以不用加 //
  • sed-LMLPHP
  • 如图,这样可以显示 第二行 到 第五行 的内容
  • sed-LMLPHP
  • 如图,这样可以显示第25行到最后一行的内容
  • 符号 $ 代表剩下的所有内容
  • 25,$ 就表示从 25行开始,然后到最后一行
  • sed-LMLPHP
  • 如图 1,$ 这样就可以把所有内容都打印出来
  • 1,$ 表示从第一行开始,到最后一行
  • 也就是全部的内容

  • sed-LMLPHP
  • 参数 -e 可以写一段操作
  • 如果想在一条命令里面执行多段操作,可以使用 -e
  • 如图,sed -e '1'p -e '/root/'p -n test.txt
  • 每一段操作都需要写一次 -e
  • 每个 -e 后面可以写一段操作
  • 命令会先执行第一段操作,然后再执行第二段操作
  • 图中的筛选结果,第一行结果是第一段命令的结果
  • 下面两行结果是第二段命令的结果
09-27 09:34