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的输入。这是一个功能很强且常见的技巧,但却很少人这么用。
  • 相关阅读:
    c语言 414 根据输入的整数,循环显示1234567890
    c语言 47 编写一段程序,显示小于输入的整数的所有2的乘方。
    c语言49 交替输出正负号,当输入0以下时什么也不显示
    c语言48 改写48的程序,当输入的值小于1时不输出换行符
    c语言 411 逆向输出输入的整数值(同时输出原始数据)
    c语言47 显示出小于输入的整数的所有2的乘方
    c语言412 输入一个整数值显示其位数
    c语言415 输出标准身高体重对照表
    c语言413 求1到n的和
    c语言 410 输出连续* \n
  • 原文地址:https://www.cnblogs.com/avention/p/10307148.html
Copyright © 2011-2022 走看看