sed

转载 2013年12月02日 14:39:04

sed可以分析标准的输入(STDIN)的数据,然后将数据经过处理后,没再将它输出到标准输出(STDOUT),他有替换,删除,新增、选取特定行等处理功能。一般情况下,使用sed对数据流进行编辑,然后输出到临时文件,当校对过临时文件的内容后,才把临时文件替换正式文件。但是在一些特殊的情况下,需要直接对文件进行修改,可以用到-i参数。使用-i参数时需谨慎确认,以免错误修改文件。

选项:
-n:使用安静模式。一般的,所有来自STDIN的数据都会显示在屏幕上,用-n后,只有经过特殊处理的那一行才能显示
-e:直接在命令模式上进行sed的操作与编辑
-f:直接将sed操作写在一个文件里,-f filename则可以执行filename内的sed操作
-r:sed的操作支持的是扩展正则表达式的语法(默认是基础正则表达式)
操作说明:[n1[,n2]]function
n1,n2:不一定存在,一般代表“选择进行操作的行数”,举例来说,如果操作需要在10到20行之间,则“ 10,20 [操作] ”
function有下面这些操作:
a:追加,a后面可以接字符串,而这些字符串会在新一行出现(当前下一行)
c:替换,c后面可以接字符串,这些字符串可以替换n1,n2之间的行
d:删除,因为是删除,所以d后面通常不接任何内容
i: 插入,i的后面可以接字符串,而这些字符串会在新的一行出现(当前的上一行)

P:打印,即打印某个选择的数据。通常P会参与sed -n一起运行
s:搜索,不但可以搜索,还可以进行替换,通常s操作与正则表达式一起使用。例:1,20s/old/new/g
例一:显示/etc/passwd的内容,并且需要打印行号,同时,将第2~5行删除
[root@linux ~]# nl /etc/passwd | sed '2,5d'     //如果删除2到最后,则:nl/etc/passwd | sed '3,$d'
例二:在第二行加上‘drink tea?’字样
[root@linux ~]# nl /etc/passwd | sed '2a drink tea?'  //如想在第二行前,则把2a变成2i即可
例三:在第二行的后面加入两行字
[root@linux ~]# nl /etc/passwd | sed '2a Drink tea or ......\
>drink beer?'                            //可以增加多行,\来进行新行的增加
例四:将2~5行的内容替换为“ No 2~5 number”
[root@linux ~]# nl /etc/passwd | sed '2,5c No 2~5 number'
例五:仅显示5~7行
[root@linux ~]# nl /etc/passwd | sed -n '5,7p'       //如不加-n,5~7行会重复出现
例六:可以使用ifconfig列出IP,若要显示eth0的IP地址
[root@linux ~]# ifconfig eth0 | grep 'inet' | sed 's/^.*addr://g' | \
>sed 's/Bcast.*$//g'
例七:在/etc/man.config文件中,将有MAN的设置取出,但不要说明内容
[root@linux ~]# cat /etc/man.config | grep 'MAN' | sed 's/#.*$//g' | \
>sed '/^$/d'

自己写的例子:
sed ‘2,5d’删除2-5行
sed ‘3d’ 删除第三行
sed ‘/^#/d’删除#开头的行(//中间的是正则表达式)
sed '/My/,/You/d' datafile删除包含"My"的行到包含"You"的行之间的行
sed -i ‘s/\.$/!/g’ re.txt把re.txt每一行用.结尾的改成!结尾。直接修改re.txt文件。
替换:sed 's/要被替换字符串/新的字符串/g'
cat /etc/man.config | sed ‘s/^#//g’找出#开头的行,并用null替换掉,就是把行首的“#”用删除。
正则表达式 ^$表示空行


 

 


相关文章推荐

sed与awk第三版pdf

  • 2017-09-29 14:19
  • 16.00MB
  • 下载

linux sed和grep命令

sed命令行格式为:          sed [-nefri]  ‘command’  输入文本/文件        ...

awk+and+sed

  • 2015-09-14 16:26
  • 16.00MB
  • 下载

sed与awk手册

  • 2016-02-18 15:29
  • 30.60MB
  • 下载

Sed技巧

【前言】    Sed 和 AWK,是shell常用的文本处理工具。    两者的工作流,都是REPR,即Read -> Execute -> Print -> Repeat。    但它们...

sed与awk高级使用

  • 2014-08-11 13:00
  • 15.92MB
  • 下载

AWK与sed指南

  • 2014-05-21 22:15
  • 6.91MB
  • 下载

sed

1.简介 sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。 sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程...

AWK、SED_Used_in_shell

  • 2014-05-20 09:48
  • 440KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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