makefile(shell)中sed命令详解

您所在的位置:网站首页 sed版本 makefile(shell)中sed命令详解

makefile(shell)中sed命令详解

#makefile(shell)中sed命令详解| 来源: 网络整理| 查看: 265

 

Sed(a stream editor)

4 个空间 :input stream, pattern buffer, output stream 和 hold buffer 基本操作过程是 : (1). 将 input stream 的当前行放入 pattern buffer, 然后 input stream 的指针指向下一行 ; (2). 对 pattern buffer 中的行进行处理 ; (3). 将 2 的处理结果放入 output stream. 然后循环这个过程 . hold buffer 是另一个空间 , 可以通过命令和 pattern buffer 进行交互 .  sed 命令介绍  1. 基本命令 ---" 替换 ": s

www.ixdba.net

  1.1 基本用法    e.g. sed 's/day/night/' new   该例子将文件 old 中的每一行第一次出现的 day 替换成 night, 将结果输出到文件 new   s            " 替换 " 命令    /../../      分割符 (Delimiter)   day          搜索字符串    night        替换字符串    其实 , 分割符 "/" 可以用别的符号代替 , 比如 ",", "|" 等 .   e.g. sed 's///usr//local//bin///common//bin/'new   等价于 sed 's_/usr/local/bin_/common/bin_' new   显然 , 此时用 "_" 作分割符比 "/" 好得多 .   1.2 用 & 表示匹配的字符串    有时可能会想在匹配到的字符串周围或附近加上一些字符 .   e.g. sed 's/abc/(abc)/' new   该例子在找到的 abc 前后加上括号 .   该例子还可以写成 sed 's/abc/(&)/' new   下面是更复杂的例子 :   sed 's/[a-z]*/(&)/' new   sed 's/[0-9]*/& &/' new   1.3 用 /1, /2, ..., /9 来表示匹配的字符串    e.g. sed 's//([a-z]*/)[0-9]*//1/' new   本例中 /1 就是指前面的 /([a-z]*/)   sed 's//([a-z]*/) /([0-9]*/)//2 /1/' new   本例中 /2 和 /1 分别代表前面的 /([0-9]*/) 和 /([a-z]*/)   /1, /2, ..., /9 也可以出现在搜索字符串中    e.g. sed 's//([a-z]*/) /1//1/' new   本例可以去除重复的由字母组成的词    1.4 " 替换 " 选项        1.4.1 /g 替换所有的        sed 默认只替换搜索字符串的第一次出现 , 利用 /g 可以替换搜索字符串所有        出现的地方 . 例如 ,       sed 's//([^ ]*/)/(&)/g' new       1.4.2 用 /1, /2, ... 来表明替换哪一次出现        e.g. sed 's/[^ ]*//2' new       可以从 /1 用到 /512       1.4.3 /p print 选项        当 sed 命令有 -n 选项时 , 该命令没用输出 .       -n 配合 /p 选项后 , 如果该行确实发生了替换 , 则输出该行 , 否则不输出 .       1.4.4 /w filename 写到文件 filename 中        e.g. sed 's//([0-9]*/) /([a-z]*/)//2/w new'



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3