Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92291577
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-18 23:22:59

4.6 p

      

函数参数 p 表示印出资料。其指令格式如下 : 
     [address1[ , address2]] p 


对于上述格式有下面几点说明 : 

函数参数 p 最多与两个地址参数配合。 
sed 执行印出动作的情况如下 : sed 拷备一份 pattern space 内容至标准输出档。 
范例 : 参考 section 3.4 开头的内容。 

4.7 l

      

函数参数 l , 除可将资料中的 nonprinting character 以 ASCII码列出外 , 其于均与函数参数 p 相同。例如 , 将下面 input.dat 檔中的 ^[ 以 ASCII 码印出 

The Great ^[ is a movie starring Steve McQueen.

执行命令 sed -e 'l' input.dat 后 , 则输出结果如下 : 
The Great \003 is a movie starring Steve McQueen.
The Great     is a movie starring Steve McQueen.

上述第二行数据为 sed 的自动输出(请参照批注[]。 

4.8 r

      

函数参数 r 表示读入它档案内容到文件中。其指令格式如下 : 

       [address1] r 它档名称


对于上述格式有下面几点说明 : 

函数参数 r 最多与一个地址参数配合。 
在指令中 , 函数参数 r 与它档名称间 , 只能有一空格。 
sed 执行读入动作的情况如下 : 在 pattern space 内数据输出后 , sed 读出它档的内容跟着输出。当它档不存在时 , sed 照样执行其它指令而不会有任何错误讯息产生。
范例 : 参考 section 3.1 之例三。 

4.9 w

      

函数参数 w 表示将文件中的写到它档内。其指令格式如下 : 

     [address1[ ,address2]] w 它档名称


对于上述格式有下面几点说明 : 

函数参数 w 最多与两个地址参数配合。 
在指令中 , 函数参数 w 与它档名称间 , 只能有一空格。 
sed 执行写出动作的情况如 : 将 pattern space 内资料写到它文件内。数据写入时 , 会取代(overwrite)原来档案内的数据。另外 , 当它档不存在时 , sed 会重新产生(creat)它。 
范例:参考 section 3.1 之例二。 

4.10 y

      

函数参数 y 表示转换数据中的字符。其指令格式如下 : 

     [address1[ ,address2]]y /xyz.../abc.../


对于上述格式有下面几点说明 : 

函数参数最多配合两个地址参数。 
指令中 , /abc.../xyz.../(x、y、z、a、b、c 代表某些字符) 为 y 的 argument 。其中 abc... 与 xyz... 的字符个数必须相同。 
sed 执行转换时 , 将 pattern space 内数据内的 a 字符转换成 x 字符 、b 字符转换成 y 字符 、c 字符转换成 z 字符 ...。 
范例: 
题目: 将 input.dat 文件中的小写字母改成大写。假设 input.dat 档的内容如下 : 
Sodd's Second Law:
        Sooner or later, the worst possible set of 
        circumstances is bound to occur.

说明:利用函数参数 y 指示 sed 做字母大小的转换。 
sed 命令列如下 : 
sed -e '
y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/
' input.dat

执行上述命令输出结果如下 : 
SODD'S SECOND LAW:
        SOONER OR LATER, THE WORST POSSIBLE SET OF 
        CIRCUMSTANCES IS BOUND TO OCCUR.

4.11 !

      

函数参数 ! 表示不执行函数参数。当有如下指令时 , 

     [address1[ , address2]] ! 函数参数


表示 , 对符合地址参数之数据不执行函数参数。例如删除 , 除了含 "1996" 字符串 , 所有数据行 , 则执行如下命令 

sed -e '/1996/!d' input.dat

4.12 n

      

函数参数 n 表示读入下一行资料。其指令格式如下: 

     [address1[ ,address2]] n 


对上述格式有下面几点说明 : 

函数参数 n 最多配合两个地址参数。 
sed 执行读入下一行动作的情况如下 : 
输出在 pattern space 的数据。 
将下一笔资料读到 pattern space。 
执行下一个编辑指令。 
范例(可与[section4.18]中的范例比较): 
题目 : 输出 input.dat 文件内偶数行资料。假设 input.dat 档内容如下: 
The
UNIX
Operation
System

说明: 在命令列上 
以选项 -n , 将数据输出的控制权(参照[section2.5])转给指令。 
利用函数参数 n 将下一行数据(偶数行)取代 pattern space 内的资料行(奇数行)。 
利用函数参数 p 将 pattern space 内的数据(偶数行)输出。 
最后 , 整个输出只有原先文件内的偶数行数据。 
sed 命令列如下 : 
sed -n -e 'n' -e 'p' infro.dat

执行上述命令后 , 输出的结果如下 : 
UNIX
System

阅读(291) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~