zoukankan      html  css  js  c++  java
  • 3.2.7 基本用法

        你可能会常在管道(pipeline)中间使用 sed,以执行替换操作。做法是使用 s 命令--要求正则表达式寻找,用替代文本替换匹配的文本,以及可选用的标志:
     
        sed 's/:.*//'  /etc/passwd/  | sort -u     删除第一个冒号之后的所有东西,排序列表并删除重复部分
     
        
                                                 sed
    语法
        sed [ -n ]  'editing command'  [ file ... ]                        单个命令
        sed [ -n ]  -e  'editing command'  ...  [ file ... ]              多个命令     
        sed [ -n ]  -f  script-file  ...  [ file ... ]                              从脚本中读取命令
     
    用途
        为了编辑它的输入流,将结果生成到标准输出,而非以交互式编辑器的方式来编辑文件。虽然 sed 的命令很多,能做很复杂的工作,但它最常用的还是处理输入流的文本替换,通常是作为管道的一部分。
     
    主要选项
        -e 'editing command'
            将 editing command 使用在输入数据上。当有多个命令需应用时,就必须使用 -e 了。
     
        -f script-file
            自 script-file中读取编辑命令。当有多个命令需要执行时,此选项相当有用。
     
        -n 
            不是每个最后已修改结果行都正常打印,而是显示以p指定(处理过的)的行。
     
    行为模式
        读取每个输入文件的每一行,假如没有文件的话,则是标准输入。以每一行来说,sed 会执行每一个应用到输入行的 editing command。结果会写到标准输出(默认状态下,或是显示地使用p命令及-n选项)。若无 -e 或 -f 选线,则 sed 会把第一个参数看作是要使用的 editing command。
     
        在这里,/字符扮演定界符(delimiter)的角色,从而分隔正则表达式与替代文本。在本例中,替代文本是空的,实际上会有效地删除匹配的文本。虽然/是最常用的定界符,但任何可显示的字符都能作为定界符。在处理文件名称时,通常都会以标点符号字符作为定界符(例如分号、冒号或逗点):
        
        find /home/tolstoy  -type d -print         寻找所有目录
        sed 's;/home/tolstoy/;/home/lt/;'           修改名称;注意:这里使用分号作为定界符
        sed 's/^/mkdir /'                                     插入mkdir命令
        sh -x                                                        以Shell跟踪模式执行
     
        上述脚本是将  /home/tolstoy  目录结构建立一份副本在  /home/lt  下。这个脚本使用了产生命令的手法,使命令内容称为Shell的输入。这是一个功能很强且常见的技巧,但却很少人这么用。
  • 相关阅读:
    Linux 进程学习(四) sigaction 函数
    Netty 编解码奥秘
    我的博客即将同步至 OSCHINA 社区,这是我的 OSCHINA ID:护国小将,邀请大家一同入驻:https://www.oschina.net/sharingplan/apply
    Netty数据如何在 pipeline 中流动
    PLM系统安装四:主卷服务安装(FSC缓存服务器plm4IP:42.20)
    Linux系统信息和进程相关命令(CPU,内存,进程)
    SAN交换机配置的备份还原,固件升级
    san交换机的级联
    PLM系统安装五(2):Corporate服务安装plm1IP:42.106
    第三步:服务器虚拟化XenServer实施部署文档
  • 原文地址:https://www.cnblogs.com/avention/p/10307148.html
Copyright © 2011-2022 走看看