【sed】个人用到的方法记录

sed博大精深,本人除了简单的用法,其他的在工作中尚未深入研究。

另,附上几个blog的文章,后续可能会更新这个列表:

  1. sed命令详解:http://www.cnblogs.com/edwardlost/archive/2010/09/17/1829145.html
  2. sed单行脚本快速参考 :http://blog.csdn.net/showman/article/details/4408937
【SED】
删除注释#和空行:
sed ‘/ *#/d; /^ *$/d‘

统计行数:
sed -n ‘$=‘ log/query.log 
2546

删掉空格:
sed ‘s/\ //g‘
删掉]:
sed ‘s/]//g‘

匹配行前(i,后a)增加一行:
sed -i ‘/-A INPUT -j REJECT --reject-with icmp-host-prohibited/i\-A INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT‘ rc.firewall.txt
sed -i ‘/-A INPUT -p icmp -j ACCEPT /a\-A INPUT -p vrrp -j ACCEPT‘ rc.firewall.txt

删掉指定字符
sed ‘s/insert ignore//g‘ 1.txt |sed ‘s/insert//g‘ |sed ‘s/\ //g‘ |sort |uniq -c |sort -nr |more

截取内容,根据时间段:
sed -n ‘/2013:14:00:00/,/2013:14:40:00/p‘ 0305.log > 1400.1440.log
zcat 2014-06-17-0000-2330_msg.ecqun.com.cn.log.gz |sed -n ‘/2014:08:00:00/,/2014:10:00:00/p‘ |more

替换:
echo "http://192.168.0.154:10010/?from=PEK&to=SHA&date=2013-12-02&enddate=2013-12-02&type=text" | sed -r "s/([0-9]{4}-[0-9]{2}-[0-9]{2})/$(date +%F)/g"

echo "20140625232336" |sed  -r ‘s/([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/\1-\2-\3 \4:\5:\6/‘                     
2014-06-25 23:23:36

打印指定行:
sed -n ‘2p‘ 1630.1650.log_7_1

删掉指定行:
sed 1,8d WAN.IP 

两行并一行:
sed ‘N;s/\n//‘

注意,下列用法和上面的区别:
sed ‘:a;N;s/\n//;ta‘

sed ‘:a;...;ta‘的作用:
:a表示:建立一个标签a;ta表示:如果执行成功,则跳转到标签a处继续执行
t label
If  a s/// has done a successful substitution since the last input line was read and since the last t or T command, then branch to label; if label is omitted, branch to end of script.
补充一下,得是前面的s///替换语句执行成功了,才跳转到标签

-------------------
“p” command prints the buffer (remember to use -n option with “p”) 
“d” command is just opposite, its for deletion. ‘d’ will delete the pattern space buffer and immediately starts the next cycle. 

P:Print up to the first embedded newline of the current pattern space.

D:If pattern space contains no newline, start a normal new cycle as if the d command was issued. Otherwise, delete text in the pattern space up to the first newline, and restart cycle with the resultant pattern space, without reading a new line of input.

N:Add a newline to the pattern space, then append the next line of input to the pattern space. If there is no more input then sed exits without processing any more commands.
时间: 2024-08-10 21:29:24

【sed】个人用到的方法记录的相关文章

ASP.NET页面优化性能提升方法记录

今天与大家分享:一种优化页面执行速度的方法.采用这个方法,可以使用页面的执行速度获得[8倍]的提升效果. 为了让您对优化的效果有个直观的了解,我准备了下面的测试结果截图: 测试环境:1. Windows Server 2003 SP22. Viaual Studio 2008,使用自带的WebDev.WebServer.EXE运行网站程序.3. (ThinkPad SL510):Core2 T6670 2.2GHz, 4G内存 二个红框中的数字反映了优化前后的执行时间.数字表明:优化前后,执行时

伪链接实现方法记录

链接一般作为页面跳转的手段,但是有时候需要使用链接形式,来实现ajax请求(非直接的页面跳转),或者来实现特殊的页面动画效果(点击链接,一段文字展开和收起). 总结起来有以下三种方法: 1.给href属性设置#,使得页面保持在当前页面, 但是页面位置会跳转到顶部,除非使用锚点跳转到特殊位置. <a href="#">click here(#)</a><br/> 2.使用javascript伪协议,给href属性设置 javascript:void(0

64位 SQL Server2008链接访问Oracle 过程汇总解决方法记录

64位 SQL Server2008链接访问Oracle 过程汇总解决方法记录 经过几天不停的网上找资料,实验,终于联通了. 环境:系统:win 2008 ,SqlServer2008 R2, 连接Oracle10g 在SqlServer2008 R2机器上需要安装Oracle客户端32位和64位两个,然后配置连接别名.设置注册表.详细情况见下面 1.错误1 ------------------------------------------------ 64位机器上建立OLE_DB链接报错 报

asp.net DataTable导出 excel的方法记录(第三方)

官网:http://npoi.codeplex.com/ 简单应用,主要是可以实现我们想要的简单效果,呵呵 需要引入dll,可以在官网下载,也可在下面下载 C#代码   protected void getExcel(DataTable dt) { NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook(); NPOI.SS.UserModel.Sheet sheet = book.CreateSh

Android代码混淆及项目发布方法记录

 Android代码混淆及项目发布步骤记录 本来整理了一份Android项目混淆与发布的文档,突然想到何不写篇博客,分享一下呢,如是便有了本文. Android代码混淆及项目发布步骤记录 一.清理代码中的调试信息,如Log.System.out 二.在清单文件中修改版本为当前版本,如果需要更新数据库,则需要在配置类或配置文件中修改程序数据库版本. 三.在清单文件中将项目的debugable设置为false 四.创建签名证书keystore文件 五.在项目中的project.properite

PHP中处理浮点数的一些方法记录

PHP中处理浮点数的一些方法记录 请不要在程序中直接使用等号.大于.加.减.乘.除等操作浮点数,如果需要对浮点数进行以上操作,请使用下面的BC系列函数.以确保准确性及精度. 两个高精度数比较大小 int bccomp ( string $left_operand , string $right_operand [, int $scale ] ) left=right 返回 0 left<right 返回 -1 left>right 返回 1 $scale 需要比较的精度,即小数点后多少位 两个

使用安卓读取sqlite数据库方法记录

最近要实现android读取sqlite数据库文件,在这里先做一个英汉字典的例子.主要是输入英语到数据库中查询相应的汉语意思,将其答案输出.数据库采用sqlite3. 如图: 实现过程完全是按照参考文章中所述.其中要说明的是,程序在第一次启动的时候,会把数据库安装到内存卡上面,从而可以读却数据库. 相关的代码: Java代码   package com.easymorse; import java.io.File; import java.io.FileOutputStream; import 

JavaScript的gzip静态压缩方法记录

传统的JS压缩(删除注释,删除多余空格等)提供的压缩率有时还是不尽不意,幸亏现在的浏览器都支持压缩传输(通过设置http header的Content-Encoding=gzip),可以通过服务器的配置(如apache)为你的js提供压缩传输,或是appfuse中使用的GZipFilter使tomcat也提供这种能力 现在的问题是这种动态的压缩会导致服务器CPU占用率过高,现在我想到的解决辨法是通过提供静态压缩(就是将js预先通过gzip.exe压缩好) 一.下面描述在tomcat中的应用 1.

oracle account locked解决方法记录

今天在访问一个老项目时,后台报错提示 oracle account locked,之前一直可以正常访问的,不知道为什么会出现这个问题,百度一下原因大概是多次登陆失败造成的,一般数据库默认是10次尝试失败后锁住用户,找到原因后接下来就是解决问题了,解决思路很简单:对用户解锁就行了,但是问题就出现在了查找用户上. 本身对oracle的结构就不是很熟悉,所以在解锁用户的时候走了很多弯路,下面就一一道来: 一.因为数据库已久远,忘记了sys用户密码,所以只能远程到服务器登陆,在登陆是确遇到了另外一个错误

jupyter notebook 的使用说明 转自 http://blog.csdn.net/tina_ttl/article/details/51031113#pythonjupyter-notebook各种使用方法记录持续更新

Python·Jupyter Notebook各种使用方法记录·持续更新 标签(空格分隔): Python PythonJupyter Notebook各种使用方法记录持续更新 一 Jupyter NoteBook的安装 1 新版本Anaconda自带Jupyter 2 老版本Anacodna需自己安装Jupyter 二 更改Jupyter notebook的工作空间 1 方式一 2 方式二绝招绝招 三Jupyter的各种快捷键 四Jupyter Notebook如何导入代码 1 将本地的py文