++sed 编辑指令的格式如下 :
[address1[,address2]]function[argument]
#address1/2可为行数或regular expression, 函数参数 function[argument] 为 sed 的内定函数
#/apple/,/orange/d 表示删除含有 "apple" 至 "orange" 字符串的数据行
++函数参数 功能列表: label 建立 script file 内指令互相参考的位置。
# 建立批注
{ } 集合有相同位址参数的指令。
! 不执行函数参数。
= 印出资料行数( line number )。
a\ 添加使用者输入的数据。
b label 将执行的指令跳至由 : 建立的参考位置。
c\ 以使用者输入的数据取代数据。
d 删除数据。
D 删除 pattern space 内第一个 newline 字母 \ 前的数据。
g 拷贝数据从 hold space。
G 添加资料从 hold space 至 pattern space 。
h 拷贝数据从 pattern space 至 hold space 。
H 添加资料从 pattern space 至 hold space 。
l 印出 l 资料中的 nonprinting character 用 ASCII 码。
i\ 插入添加使用者输入的数据行。
n 读入下一笔资料。
N 添加下一笔资料到 pattern space。
p 印出资料。
P 印出 pattern space 内第一个 newline 字母 \ 前的数据。
q 跳出 sed 编辑。
r 读入它檔内容。
s 替换字符串。
t label 先执行一替换的编辑指令 , 如果替换成牛p>则将编辑指令跳至 : label 处执行。
w 写资料到它文件内。
x 交换 hold space 与 pattern space 内容。
y 转换(transform)字符。
++ 函数参数 s 表示替换(substitute)文件内字符串。其指令格式如下 :
[address1[ ,address2]] s/pattern/replacemen/[flag]
#flag : 主要用它来控制一些替换情况 :
当 flag 为 g 时 , 代表替换所有符合(match)的字符串 。
当 flag 为十进制数 m 时 , 代表替换行内第 m 个符合的字符串。
当 flag 为 p 时 , 代表替换第一个符合 pattern 的字符串后 , 将数据输出标准输出文件。
当 flag 为 w wfile 时 , 代表替换第一个符合 pattern 的字符串后 , 输出到 wfile 檔内(如果 wfile 不存在 , 则会重新开启名为 wfile 的档案)。
#数据文件的 "test" 被替换成 "test my car"
sed -e 's/test/& my car/' filename ## &:代表其前 pattern 字符串
#数据文件的 "test my car" 被替换成 "[my car test]"
sed -e 's/\(test\) \(my\) \(car\)/[\2 \3 \1]/' filename #\n代表pattern中被第 n 个 \(XX\)所括起来的字符串
++函数参数 d 表示删除数据行 , 其指令格式如下:
[address1[ ,address2]] d
++函数参数 a 表示将资料添加到文件中。其指令格式如下:
[address1] a\ 使用者所输入的数据
sed -e '/美国人/a\中国人' filename #添加 "中国人" 在含 "美国人" 字符串的数据行后
#如果需要插入多行,可以加\n
++函数参数 i 表示将资料插入文件中。其指令格式如下:
[address1] i\ 使用者所输入的数据
++函数参数 r 表示读入它档案内容到檔中。其指令格式如下 :
[address1] r 它檔名称
++函数参数 w 表示将檔中的写到它檔内。其指令格式如下 :
[address1[ ,address2]] w 它檔名称
++函数参数 y 表示转换数据中的字符。其指令格式如下 :
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 笔记 学习 函数参数 数据 指令 space pattern 资料 sed |
注册
个人空间
