文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>流编辑程序sed语法小结

流编辑程序sed语法小结

时间:2007-04-25  来源:freewildwolf

1、   语法格式

sed ‘ 一系列ed命令 ’  文件名…

 

2、   一个例子程序

sed ‘s/ ^ / -> / ’  $*

sed ‘ / . / s/ ^ / -> / ’ $*

sed ‘ / ^$ / ! s/ ^ / -> / ’ $*

以上三行程序的功能一样,都是在每一行前面加上Tab。但是第一行程序没有排除空行。

 

3、   打印

sed 默认会打印匹配的每一行,但是可以使用-n选项将其关闭。在这种情况下,只有用P命令显式说明的行才出现在输出中。如

     sed –n ‘ / 模式 /p ’

     sed –n ‘ / 模式 /!p ’

 

4、   命令文件

还可以将ed命令置于一个文件中,使用-f参数调用文件执行

sed –f‘  命令文件 …

 

5、sed命令汇总

命令

含义

a \

将行添加到输出直到不以\为终结的行

b 标号

转至命令:标号

c \

对随后的文本,如同a命令那样逐行修改

d

删除行,读下一个输入行

i \

在下一个输出前插入下面的文本

l

按行列表,使所有非打印字符可见

p

打印行

q

退出

r 文件

读文件,拷贝内容到输出

s/old/new/f

用新串替代旧串,若f=g,置换所有的变化;f=p,打印;f=w写入文件

t 标号

测试:若对当前行做了替换,转至标号

w 文件

将行写到文件

y/串1/串2

用串2中对应的字符替换串1中的每个字符(不支持范围值)

=

打印当前输入行号

!命令

当行未被选取使,执行命令

:标号

为b和t 命令设置标号

{

将{}之间的命令视作一组

 

6、多命令行

         例子:

sed –n ‘ / 模式 / w file1

      / 模式 / w file2 ‘ 文件名…

 

7、例子

sed ‘ / 模式 / q’ --------------------打印其输入直至包含与模式匹配的第一行;

sed ‘/ 模式 / d’ ---------------------删除包含模式的每一行;

sed –n ’20,30p’ ----------------------仅打印20至30行;

sed ‘1,10d ’  ----------------------删除1至10行(=tail+11);

sed ‘1, /^$/d’ -----------------------删除直至包括第一个空行

sed –n ‘/^$/, /^end/p’ -------------打印每一个从一空行至一始于end的这样的行组;

sed ‘$d’    -----------------------删除最后一行

 

 

更多例子:
------------------------------------------------------------ 
1. 将 filename 档案内的 Giga 字串取代成 GigaRama

sed s/Giga/GigaRama/ filename

---------------------------------------------------------------
2. 将 filename 档案内的 xfish 字串那一行删除

sed /xfish/d filename

---------------------------------------------------------------
3. 指定哪一行,将之删除

sed '4d' filename

---------------------------------------------------------------
4. 或指定第一行到第几行,将之删除

sed '1,4d' filename

---------------------------------------------------------------
5. 将第一行到第五行印出

sed -n 1,5p filename

---------------------------------------------------------------
6. 将 file 档案内的出现 xfish 字串的那一行单独写到 file2 内

sed -n '/xfish/w file2' file

---------------------------------------------------------------
7. 万用字元的使用,将 file 档案内的 xfis? 哪一行写到 file2 内

sed '/xfis./w file2' file

---------------------------------------------------------------
8. 万用字串的使用,将 file 档案内的 xfis* 哪一行写到 file2 内

sed '/xfis*/w file2' file

---------------------------------------------------------------
9. 选定字元的使用,将 file 档案内的 xfis[abcd] 哪一行写到 file2 内

sed '/xfis[abcd]/w file2' file

---------------------------------------------------------------
10. 特别符号的取消,利用 /

sed s/\<title\>/\<TITLE\>/ file

---------------------------------------------------------------
11. 一行的起头的取代,将 file 档案的每一行起头都加上 Hi..

sed s/^/Hi.. / file

---------------------------------------------------------------
12. 一行的结尾的取代,将 file 档案的每一行结尾都加上 Hi..

sed s/$/Hi.. / file
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载