sed使用手册

转载 2007年09月23日 01:47:00
原贴:http://blog.chinaunix.net/u/23204/showart_305602.html

 

 
sed使用手册-原创
 
 
sed使用手册。 以下内容允许转贴,转贴时请注时出处:www.gd-linux.com.作者:knight.时间:2007-5-20.
 
在sed语句,正则表达式必须封闭在//中间。如/^$/d,删除空行。  

sed地址
     在sed地址管理中,默认是对全局进行操作,同时地址可以分为行地址和模式地址。
     如1,10d  12d  10,$d  表示行地址
     如/^$/d  表示模式地址。
     用户在进行操作时,可以对行地址和模式地址一起结合进行操作。如1,/^$/d 表示删除第一行到第一个空行之间的所有内容。

sed地址嵌入
  address {
     address
      command1
      command2
    }

替换命令
   语法格式:
 [address]s/old/new/flags
flags如下:
 n:1~512之间的数字,表示对本模式中指定的匹配行中出现第n次的情况时进行替换,其它行不进行替换。
如sed 's/unix/UNIX/2' sed.txt 替换每行中第个unix字符,将其转换成大写UNIX。
 g:表示对全局进行替换。
 p:打印模式空间的内容。即打印匹配行的内容。
 w file:表示匹配行的内容写到另一个文件中。

   注意:定界符可以使用多种,如“/”“#”“,”“!”等

  s/     */ /g表示任意多个空格,用一个空格代替。
  s/unix/aa&bb/g 表示将unix替换成aaunixbb。

删除命令
   语法格式:
 [address]d
  如/^/.aa/d  删除.aa开头的内容。   
 /^$/d  删除空行的内容。     (应用到了模式地址)
 10d  删除第10行的内容。       (应用到了行地址)

追加命令
   语法格式:
 [line-address]a/text
   如sed '10a/abcd' sed.txt   在sed.txt文件中的第10行后面追加一行abcd字符。
 sed '/unix/a/abcd//ndcba' sed.txt  在sed.txt文件中所有出现unix字符的行后面追加一行abcd/ndcba字符
 sed '/unix/a/abcd/n/dcba' sed.txt  在sed.txt文件中所有出现unix字符的行后面追加两行字符,其中第一行为abcd第二行为dcba。

插入命令
   语法格式:
 [line-address]i/text
   如 sed '/unix/i/adflajflad/n/adfadfajdlf' sed-s.txt  在sed.txt文件中所有出现unix字符的行前面追加两行字符,其中第一行为abcd第二行为dcba。

更改命令
   语法格式:
 [address]c/text
   如sed '1c/aaaa' sed-s.txt  将第一行的内容更改为aaaa.

转换命令
    语法格式:
 [address]y/old/OLD/  将小写的old转换成大写的OLD字符。
使用y命令时,需要注意转换的字符个数一定要相同,当转换的字符个数不相同时,系统将提示错误。

打印行号
   语法格式:
 [address]=   打印匹配行的行号。
   如 sed '/unix/=' sed.txt  打印sed.txt文件中,包含unix字符的行号。不包含unix字符的行,不打印行号。
 sed  '/yes/=' /etc/ssh/sshd_config

下一步,next
   语法格式:
 [address]n  next改变正常的流控制,执行完这一步时,不返回,而是执行下一步内容。

读/写文件
   语法格式:
 [line-address]r file  读文件。
 [address]w file   写文件。

  如sed '/unix/r 1.txt' sed-s.txt 在unix字符的后面,读入1.txt文件
 sed '2r 1.txt' sed-s.txt 在第2行后面,读入1.txt文件
 sed '2,5w 2.txt' sed-s.txt 将第2行到第5行的内容,写到2.txt文件中去。

退出
   语法格式:
  [address]q
  如sed ‘100q’ sed.txt  读到第100行时,退出。
  sed '/unix/q' sed.txt  遇到第一个unix字符时退出。  
 
 

sed常见用法总结

编辑文本  sed -i '1i xyz' test.txt 在第一行之前 sed -i '1a xyz' test.txt  在第一行之后插入 sed -i '1c xyz' test.txt  把...
  • u011750989
  • u011750989
  • 2014年09月02日 20:00
  • 2258

linux sed删除d命令使用举例

sed删除,并不会修改原文件中的内容,除非重定向新文件 sed ‘2d’ example.txt表示删除example.txt中第二行的文本内容 sed ‘2,$d’ example.txt表示删除e...
  • Dean_Deng
  • Dean_Deng
  • 2015年08月02日 14:29
  • 5674

ubuntu下sed命令详解

在我写这篇blog之前还有点犹豫,因为像这么著名的命令,sed和awk应该在很多书籍里都有介绍,但是在网上找时,却是寥寥无几...      sed简介              sed是一种非交互式...
  • hanxingwang0806
  • hanxingwang0806
  • 2015年08月16日 15:46
  • 541

sed中使用变量替换以及执行外部命令

在使用sed对日志或者其它文本进行parse的过程当中,有时候我们需要引用外部变量的值,   或者获取一个shell命令执行的结果,以便达到更加可观的输出结果。这里介绍如何做到。   sed中...
  • halazi100
  • halazi100
  • 2014年12月04日 11:54
  • 3178

sed命令针对文件操作详解

Linux的简单shell脚本中修改文件操作 1.Sed简介 sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspa...
  • u010193457
  • u010193457
  • 2015年07月14日 11:16
  • 1505

sed 字符替换

1、shell中的()作用: 单小括号 ()     ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可...
  • listener51
  • listener51
  • 2017年04月09日 15:31
  • 413

Centos7下,sed命令用法介绍

sed: Stream Editor 流编辑器,行编辑器,逐行编辑。 将每行内容读入到内存中,在内存中进行处理,将结果返回给屏幕 ,此段内存空间称为模式空间默认不编辑原文件,仅对模式空间...
  • shuyun123456789
  • shuyun123456789
  • 2017年08月03日 10:55
  • 425

sed命令n,N,d,D,p,P,h,H,g,G,x解析

1、 sed执行模板=sed '模式{命令1;命令2}' 即逐行读入模式空间,执行命令,最后输出打印出来 2、 为方便下面,先说下p和P,p打印当前模式空间内容,追加到默认输出之后,P打印当前...
  • wuli2496
  • wuli2496
  • 2016年01月13日 23:55
  • 1756

ubuntu下sed编辑器的简单使用

sed编辑器被称做流编辑器(stream  editor),根普通交互式文本编辑器恰好相反。在交互式文本编辑器中(eg:Vim),可以使用键盘命令来交互式地插入  删除 或者替换数据中的文本。流编辑器...
  • renzhenhuai
  • renzhenhuai
  • 2013年11月03日 20:53
  • 1807

sed 处理替换字符中的特殊字符

今天编写shell程序时遇到了一个关于sed命令的问题。问题简化如下。 文本文件1.txt中包含字符串[:50] ~/Documents/books/linux/test$:cat 1.txt [:...
  • chenwei19870313
  • chenwei19870313
  • 2016年09月08日 11:57
  • 6006
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sed使用手册
举报原因:
原因补充:

(最多只允许输入30个字)