5.15 sed介绍

ü         sed不与初始化文件打交道,它操作的只是一个拷贝,然后所有的发动如果没有重定向到一个文件,将输出到屏幕。

ü         sed是一种重要的文本过滤工具,使用一行命令或者使用管道与grepawk相结合。

ü         非交互性文本流编辑。

ü         调用sed有三种格式:

l         使用sed命令格式为:

sed  [选项]  sed命令  输入文件。

l         使用sed脚本文件,格式为:

sed  [选项]  –f  sed脚本文件  输入文件

l         sed  脚本文件 [选项]  输入文件

l         不管是使用shell命令行方式或脚本文件方式,如果没有指定输入文件,sed从标准输入中接受输入,一般是键盘或重定向结果。

ü         Sed命令选项如下:

l         -n 不打印

l         -c 下一命令是编辑命令

l         -f 如果正在调用sed脚本文件

ü         Sed在文件中查询文本的方式

l         使用行号,可以是一个简单的数字,或是一个行号范围

l         使用正则表达式

X

X为一行号

XY

表示行号范围从XY

/pattern/

查询包含模式的行

/pattern/pattern/

查询包含两个模式的行

Pattern/X

在给定行号上查询包含模式的行

X/pattern/

通过行号和模式查询匹配行

XY

查询不包含指定行号XY的行

l         基本sed编辑命令

p

打印匹配行

=

显示文件行号

a\

在定位行号后附加新文本信息

i\

在定位行号后插入新文本信息

d

删除定位行

c\

用新文本替换定位行文本(替换整行)

s

使用替换模式替换相应模式(替换文本)

r

从另一个文件中读文本

w

写文本到一个文件

q

第一个模式匹配完成后推出或立即退出

l

显示与八进制ASCII代码等价的控制字符

{}

在定位执行的命令组

n

从另一个文件中读文本下一行,并附加在下一行

g

将模式2粘贴到/pattern  n/

y

传送字符

例:

sed  ‘2p’  score.txt

sed  -n  ‘2p’  score.txt

sed  -n  ‘2,10p’  score.txt

sed  -n  ‘/qihongjun/’  score.txt

sed  -n  ‘4,/qihongjun/’ score.txt

sed  ‘/oracle/a\baobao’  score.txt           追加  oracle  的下一行

sed  ‘/oracle/i\baobao’  socre.txt        插入  oracle的上一行

sed  ‘/oracle/c\baobao’  score.txt           替换整行

sed  ‘s/oracle/qihongjun/’  score.txt              替换文本

sed  ‘s/qihongjun/& hujing/p’  passwd       hujing    qihongjun  的后面

sed  ‘s/qihongjun/hujing  &/p’  passwd      hujing    qihongjun  的前面

 

 

 

5.16合并与分割

Ø         Sort  [ options ]  files

n         许多不同的域按不同的列顺序分类。

n         -c  测试文件是否已经分类

n         -m  合并两个分类文件。

n         -u  删除所有复制行。

n         -o  存储sort 结果的输出文件名。

n         -t  域分隔符;用非空格或tab键分隔域。

n         +n  n为域号,使用此域号开始分类。

n         指定分类是域上的数字分类项。

n         -r  比较求逆。

Ø         man sort

Ø         uniq [ options ] files

n         从一个文本文件中去除或禁止重复行

n         -u  只显示不重复行

n         -d  只显示有称重复数据行,每种重复行只显示其中一行。

n         -c  打印每一重复行出现次数

n         -f  n为数字,前n个域被忽略。

Ø         man  uniq

Ø         split 分割文件

n         split -10  passwd  word