博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第一天:sed
阅读量:5937 次
发布时间:2019-06-19

本文共 1529 字,大约阅读时间需要 5 分钟。

hot3.png

第一天:sed
      
sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
   
定址:
用逗号分隔的两个行数表示以这两行为起止的行的范围(包括行数表示的那两行)。如
1
3
表示
1
2
3
行,美元符号($)表示最后一行。
  调用sed命令有两种形式:
                    1> 
sed [options] 
'command'
 file(s)
                    2> 
sed [options] -f scriptfile file(s)
  
选项
[options]:
               -e command ,
--expression=command     
多点编辑
    
-n 行数
  命令
'command'
      
删除:d命令         
替换:s命令    
g   行内全面替换    p 
打印模板块的行   
从文件读入
:r命令
      
w file 
写并追加模板块到file末尾   
W file  
写并追加模板块的第一行到file末尾
      
a\ 
在当前行后面加入一行文本   
i\  
在当前行上面插入文本
      
n  
读取下一个输入行,用下一个命令处理新的行而不是用第一个命令
      y表示把一个字符翻译为另外的字符(但是不用于正则表达式)
      
退出:q命令 
      h 
拷贝模板块的内容到内存中的缓冲区  
获得内存缓冲区的内容,并追加到当前模板块文本的后面
      x表示互换模板块中的文本和缓冲区中的文本。
  
元字符集:
      
^:
锚定行的开始  $:
锚定行的结束  &:
保存搜索字符用来替换其他字符,如s/love/**&**/
,love这成**love**。
      
\(..\):
保存匹配的字符,如s/\(love\)able/\1rs,loveable被替换成lovers
  例子:
      
sed 
's/test/mytest/g'
 example-----在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test
      
sed -n 
's/^test/mytest/p'
 example-----(-n)选项和p标志一起使用表示只打印那些发生替换的行
      
sed 
's/^192.168.0.1/&localhost/'
 example-----&符号表示替换换字符串中被找到的部份
      sed --expression=
's/test/check/'
 --expression=
'/love/d'
 example-----一个比-e更好的命令是--expression
          
它能给sed表达式赋值
      
sed 
'/test/{ n; s/aa/bb/; }'
 example
      
$ sed -e 
'/test/h'
 -e '$G example
在sed处理文件的时候,每一行都被保存在一个叫模式空间的临时缓冲区中,除非行
被删除或者输出被取消,否则所有被处理的行都将 打印在屏幕上。接着模式空间被清空,并存入新的一行等待处理。在这个例子里,匹
配test的行被找到后,将存入模式空间,h命令将其复制并存入一个称为保 持缓存区的特殊缓冲区内。第二条语句的意思是,当到达最
后一行后,G命令取出保持缓冲区的行,然后把它放回模式空间中,且追加到现在已经存在于模式空间中 的行的末尾。在这个例子中就
是追加到最后一行。简单来说,任何包含test的行都被复制并追加到该文件的末尾

转载于:https://my.oschina.net/u/566829/blog/222857

你可能感兴趣的文章
HTML5 Geolocation API工作原理[转载]
查看>>
soapUI的简单使用(webservice接口功能测试)
查看>>
框架 Hibernate
查看>>
python-while循环
查看>>
【微信小程序】再次授权地理位置getLocation+openSetting使用
查看>>
手机端上传图片及java后台接收和ajaxForm提交
查看>>
HDU 5030 Rabbit's String
查看>>
【MSDN 目录】C#编程指南、C#教程、ASP.NET参考、ASP.NET 4、.NET Framework类库
查看>>
jquery 怎么触发select的change事件
查看>>
angularjs指令(二)
查看>>
(原創) 如何建立一个thread? (OS) (Linux) (C/C++) (C)
查看>>
<气场>读书笔记
查看>>
实现一个平行四边形
查看>>
领域驱动设计,构建简单的新闻系统,20分钟够吗?
查看>>
web安全问题分析与防御总结
查看>>
React 组件通信之 React context
查看>>
ZooKeeper 可视化监控 zkui
查看>>
Linux下通过配置Crontab实现进程守护
查看>>
ios 打包上传Appstore 时报的错误 90101 90149
查看>>
Oracle推出轻量级Java微服务框架Helidon
查看>>