壳牌编程之正则表达式(二)

  

文本处理器

  Linux/UNIX

在<代码> 系统中包含很多种文本处理器或文本编辑器,其中包括我们之前学习过的<代码> VIM> 等。而<代码> grep、sed、awk> 壳> 壳>   

sed工具

  

<代码> sed(流编辑器)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除,替换,添加,移动等),最后输出所有行或者仅输出处理的某些行。<代码> sed> 壳脚本中,用以完成各种自动化处理任务。

  
      <李>   

    <代码> sed>   

        <李>读取:<代码> sed> 模式空间>   <李>执行:默认情况下,所有的<代码> sed 命令都在模式空间中顺序地执行,除非指定了行的地址,否则<代码> sed 命令将会在所有的行上依次执行   <李>显示:发送修改后的内容到输出流。再发送数据后,模式空间将会被清空   <李>在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完李   
      李   <李>默认情况下,所有的sed命令都是在模式空间内执行的,因此输入的文件并不会发生任何变化,除非是用重定向存储输出李   
  

sed命令常见用法

  
      <李>   

    sed命令有两种格式:

      
     <代码> sed(选项)的操作的参数//安问笔侵覆僮鞯哪勘晡募?当存在多个操作对象时用,文件之间用逗号”、“分隔
      或
      sed(选项)- f scriptfile参数//scriptfile表示脚本文件,需要用“- f”选项指定 
      李   <李>   

    常见sed命令选项

      
        <李> <代码> - e 或<代码>=>   <李> <代码> - f 或<代码>=>   <李> <代码> - h 或<代码>——帮助>   <李> <代码> n ,<代码>——安静的或<代码>沉默>   <李> <代码> - :直接编辑文本文件   
      李   <李>”操作“用于指定对文件操作的动作行为,也就是sed的命令。通常情况下是采用的”(n1 [, n2]]”操作参数的格式.n1, n2是可选的,不一定会存在,代表选择进行操作的行数,如操作需要在5 ~ 20行之间进行,则表示为“5、20动作行为”。常见的操作包括以下几种   
        <李> <代码> :增加,在当前行下面增加一行指定内容李   <李> <代码> c>   <李> <代码> d>   <李> <代码>我>   <李> <代码> p> <代码>码输出。其通常与<代码>“n”选项一起使用李   <李> <代码> :替换,替换指定字符   <李> <代码> y :字符转换李   李
      
  

示例

  

<强> 1)输出符合条件的文本(p表示正常输出)

  
 <代码> [root@localhost选择]# sed - n ' p ' httpd。txt//输出文件所有内容,等同猫httpd.txt
  #
  #这是主Apache HTTP服务器配置文件。它包含了
  #配置指令给服务器的指令。
  # & lt; URL: http://httpd.apache.org/docs/2.4/>的详细信息。
  特别是#,看到的
  # & lt; URL: http://httpd.apache.org/docs/2.4/mod/directives.html>
  #讨论的每个配置指令。
  #
  #不只是阅读说明书在这里没有理解
  #他们做什么。他们在这里配置="/etc/vsftpd/vsftpd.conf”
  #备份原来的配置文件,检测文件名为/etc/vsftpd/vsftpd.conf。贝克备份文件是否存在,若不存在则使用cp命令进行文件备份
  [!$ CONFIG - e”。贝克”),和cp配置配置美元。贝克//基于样本配置进行调整,覆盖现有文件
  sed - e '/^ anonymous_enable/s/是的/不/g的样品比美元;美元配置
  sed - i - e '/^ local_enable/s/没有/是的/g - e '/^ write_enable/s/没有/是的/g”配置grep“倾听”配置美元| | sed - $ alisten=是的美元配置
  #启动vsftpd服务,并设为开机后自动运行systemctl vsftpd重启
  systemctl启用vsftpd
  (root@localhost ~) # * * chmod + x local_only_ftp.sh 

壳牌编程之正则表达式(二)