4.12 n
函数参数n表示读入下一行资料。其指令格式如下:
[address1[,address2]]n
函数参数n最多配合 两个地址参数
sed执行读入下一行动作的情况如下
输出在pattern space的数据
将下一笔资料读到pattern space
执行下一个编辑指令
输出input.dat文件内偶数行资料
The
UNIX
Operation
System
说明:
在命令列上以选项-n,将数据输出的控制权转给指令
利用函数参数n将下一行数据(偶数行)取代pattern space内的资料行(奇数行)。
利用函数参数p将pattern space内的数据(偶数行)输出
4.13 q
函数参数q表示跳离sed
[address1]q
说明
函数参数q最多配合一个地址参数
sed 执行跳离动作时,它停止输入pattern space数据,同时停止数据送到标准输出文件
对文件执行script_file内的编辑命令,除非遇到"Linux"字符串
说明
无论script_file内是何种命令,使用者只要在命令列上用指令/Linux/q,函数参数q
会强迫sed遇到"Linux"时退出跳离动作
sed -e '/Linux/q' -f script_file input.dat
4.14 =
函数参数=表示印出资料的行数。其指令格式如下
[address1[,address2]]=
说明
函数参数 = 最多配合两个地址参数
执行时,行数将在数据输出前先输出
印出input.dat文件内资料行数
The UNIX
Operating System
用函数参数=来印出资料的行数
sed -e '=' input.dat
4.15 #
在script file内,函数参数#后的文字为注解。档注解文字超过多行时,其行间须
以"\"换行字符相隔
4.16 N
函数参数N表示添加下一笔资料在pattern space内。其指令格式如下
[address1[,address2]]N
说明
函数参数N 最多配合两个地址参数
sed执行时,将下一行数据读入并添加到pattern space内,数据行间以换行字符(embedded newline character)分隔。
此外,在替换时,换行字符可用\n来match
将下述两行数据合并.
The UNIX
Operating System
说明:
先利用函数参数N将两行数据至于pattern space内,在利用函数参数s/\n//将两行之间
的分隔号\n以空白替代,如此两行数据变成一行输出
sed -e 'N' -e 's/\n//' input.dat
4.17 D
函数参数D表示删除pattern space内的第一行资料。其指令格式如下
[address1,address2]D
函数参数D最多配合两个地址参数
函数参数D与d的比较如下
当pattern space内只有一数据行时,D与d作用相同
当pattern space内有多行资料行时
D表示只删除pattern space内第一行资料;d则全删除
D表示执行删除后, pattern space内不添加下一笔数据,而将剩下的数据重新执行
sed script;d则读入下一行后执行sed script
4.18 P
函数参数P表示印出pattern space内的第一行资料。其指令格式如下:
[address1,address2]P
说明
函数参数P做多配合两个地址参数
P与p,除了面对的pattern space内的数据行数不同外,其他均相同
题目: 输出input.dat 文件内奇数行资料。假设input.dat 檔内容如下:
The
UNIX
System
说明
以选项-n,将数据输出的控制权转给指令
利用函数参数N将偶数行添加到pattern space内奇数行后
利用函数参数P将pattern space内的第一行(奇数行)输出
在奇数行输出后,pattern space内剩下的数据行(偶数行)则被放弃输出。最后,
整个输出只有原先的奇数行数据
sed -n -e 'N' -e 'P' info.dat
阅读(1226) | 评论(0) | 转发(0) |