sed是linux轻量级流编辑器,用于行的操作,主要用来数据的选取、替换、删除、新增等。从输入文件中一次一行的读取,

按顺序将列表中的命令应用到每一行,并将其编辑过的行,写到标准输出。

权  限:所有用户

位  置:/bin/sed

用  法:sed [-nefr]  [动作]  file

参数:

-n

不加-n的时候,sed处理的数据和不处理的都会输出,加上-n只会输出sed操作的行,

注意:与动作p和起来用,不要与其他动作一起用

-e

直接在命令行模式上进行sed的动作编辑

例如:sed -e 's/aaa/b/g; s/aa/b/g' file 也即多个动作同时操作,注意中间的分号

-f

直接将sed动作写在一个文件内,-f file 则可以执行filename内的sed动作

-r

sed的动作支持扩展的正则表达式(默认支持基础正则表达式)

-i

直接修改读取的文件内容

注意:多个选项参数一起用的时候,例如:sed  -i  -r  ...             不可以这样:sed -ir  ...

动作说明:[n1[,n2]] function

不见得会存在,一般代表选择动作的行数,如果动作是在5到15行之间进行替换,则"10,20c"

a      新增,当前行的下一行

sed '2a hello world' file  输出在第2行之后插入hello world

sed '2a hello world\

my name is csdn'  file

输出在2行下面插入两行分别为hello world  和my name is scdn

特别注意hello world 后面的"\"

c       替换,是整行替换

sed '3,6c  hello csdn'  file

输出把3至6行的只替换为 hello csdn(第3至6行只剩下一行hello csdn,不是3至6行的每一行都为hello csdn)

d       删除

sed '3,6d' file   输出删除file的3至6行之后的内容

i        插入,当前行的上一行

与a动作类似,参照a动作用法

p       打印

sed  -n  '2,5p' file   打印file的第2至5行

s        替换

sed 's/oldString/newString/g' file   oldString和newString支持基础正则表达式和扩展的正则表达式

cat -n nginx | sed '1,99s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}//g'  把nginx日志的1至99行的第一个字段IP地址替换为空

结果为:

91 - - [15/Dec/2014:23:00:10 +0800],GET /identified?key=this-is-TMP-apikey&digest=914EBB2FD551844CBE15513C0126E6EE&digest-algorithm=ed2k&hash=9D37BB2988F26973371FAB028FEEEB93D5542300& HTTP/1.1,200 65,-,XMP Windows Client 4.9,-,ed2k://|file|ki141213.wmv|1119747351|914EBB2FD551844CBE15513C0126E6EE|h,00E04C377725NG4E,ki141213.wmv,1119747351

92 - - [15/Dec/2014:23:00:10 +0800],GET /identified? HTTP/1.1,401 112,-,-,-,-,-,-,-

93 - - [15/Dec/2014:23:00:10 +0800],GET /identified? HTTP/1.1,401 112,-,-,-,-,-,-,-

94 - - [15/Dec/2014:23:00:10 +0800],GET /identified? HTTP/1.1,401 112,-,-,-,-,-,-,-

95 - - [15/Dec/2014:23:00:10 +0800],-,400 0,-,-,-,-,-,-,-

96 - - [15/Dec/2014:23:00:10 +0800],GET /identified?key=this-is-TMP-apikey&digest=76BB7C854168DCD1BF15FCB92E4114FFD4CFE7DE&digest-algorithm=magnet&hash=28003498535& HTTP/1.1,200 65,-,Thunder Windows Client 7.9,-,magnet:?xt=urn:btih:76BB7C854168DCD1BF15FCB92E4114FFD4CFE7DE,EC55F9E92A5212LQ,ABP-209R,1067178826

97 - - [15/Dec/2014:23:00:10 +0800],GET /identified? HTTP/1.1,401 112,-,-,-,-,-,-,-

98 - - [15/Dec/2014:23:00:10 +0800],GET /identified? HTTP/1.1,401 112,-,-,-,-,-,-,-

99 - - [15/Dec/2014:23:00:10 +0800],-,400 0,-,-,-,-,-,-,-

100121.12.57.154 - - [15/Dec/2014:23:00:10 +0800],GET /identified? HTTP/1.1,401 112,-,-,-,-,-,-,-

动作其他用法1:sed  '/模式/动作'  文件

可以指定某种模式的行进行动作操作,如下(这里的文件名是a,注意cat a的输出):

1、以p开头的行前加[TAB]

$ cat a

pa:11:a

sa:32:c

app:5:b

stort:1:d

pear:4:aa

hello:3:f

$ sed '/^p/s/^/\t/' a

pa:11:a

sa:32:c

app:5:b

stort:1:d

pear:4:aa

hello:3:f

2、删除以a开头的行,(那么下面的输出,以a开头的行就没了)

$ sed '/^a/d' a

pa:11:a

sa:32:c

stort:1:d

pear:4:aa

hello:3:f

3、反向匹配(文件a中,输出只保留了a开头的行)

$ sed '/^a/!d' a

app:5:b

4、等价与grep -v   (输出文件a中,非p字母开头的行)

$ grep -v '^h' a

pa:11:a

sa:32:c

app:5:b

stort:1:d

pear:4:aa

$ sed -n '/^h/!p' a

pa:11:a

sa:32:c

app:5:b

stort:1:d

pear:4:aa

动作其他用法2:

也可以使用成对的正则表达式或行号与正则表达式的结合,来选取一定范围的行,如下:

1、sed '1,3d'  file   删除1至3行

2、sed -n '1,3p' file  打印1至3行

3、sed  '1, /^$/d' file  删除范围:第一行至第一个空行 (注意格式)

4、sed '/^$/, /^app/d' file  删除范围:第一个空行至以app开头的行

5、sed '$d'  file   删除最后一行

注意:反向匹配行,是动作前加感叹号 (!d    !s    !c等等)

如果前面的命令直接加入-i,则直接修改文件

linux下查询日志sed与或非,Linux命令之sed命令使用介绍相关推荐

  1. Linux 下查询日志

    文章目录 查询某个时间点 grep 命令 - 精准查询 查询某个时间段 grep 命令 - 精准查询 sed 命令 - 模糊查询 以查询日志 master.log 为例(因为我实际测试时使用的日志文件 ...

  2. 在linux下查询日志

    // 显示文件倒数2行数据,并实时刷新新日志 tail -2f demo.log // 显示文件全部内容 cat demo.log //more类似cat,不过会以一页一页的形式显示,按空白键spac ...

  3. linux下log日志乱码_如何用 Linux 技巧大大提高工作效率?

    作者 | 守望先生 责编 | 屠敏 前言 Linux中的一些小技巧可以大大提高你的工作效率,本文就细数那些提高效率或者简单却有效的Linux技巧. 命令编辑及光标移动 这里有很多快捷键可以帮我们修正自 ...

  4. linux 日志压缩及清理,linux下的日志压缩脚本

    linux下的日志压缩脚本: #!/bin/bash #第一步:先定义项目列表如下: projects="project-a project-b project-c project-d&qu ...

  5. linux下mysql日志管理及mysql备份还原

    linux下mysql日志管理及mysql备份还原 1.SHOW GLOBAL VARIABLES LIKE '%log%';  显示所有日志相关的选项 2.错误日志:log_error和log_wa ...

  6. Linux下重要日志及查看方式

    原文地址::https://www.cnblogs.com/skyhu365/p/10615706.html 相关文章 1.linux清除cache的方法----https://www.cnblogs ...

  7. Linux登录安全及用户操作审计 ,linux下清理日志脚本

    一.合理使用Shell历史命令记录功能 Linux下可通过history命令查看用户所有历史操作记录,同时shell命令操作记录默认保存在用户目录下的.bash_history文件中,有时候***会删 ...

  8. Linux下常用日志分析工具

    Linux下常用日志分析工具 Logcheck简介 对于拥有大量账户.系统繁忙的Linux系统而言,其日志文件是极其庞大的,很多没有用的信息会将值得注意的信息淹没,给用户分析日志带来了很大的不便.现在 ...

  9. 解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题

    解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题 参考文章: (1)解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题 (2)http ...

最新文章

  1. 计算机cg专业,cg行业要学哪个专业好
  2. Spring5源码 - 构建源码环境
  3. 控制台启动jar包关闭控制台怎么关java程序_Jpom一款简而轻的低侵入式Java运维、监控软件...
  4. JeeWx 捷微 2.2 发布,微信管家平台
  5. Unity导入3D模型的过程与方法
  6. (android实战)第三方应用反编译并修改UI信息后,重新编译
  7. 20145307《信息安全系统设计基础》第十四周学习总结
  8. python写作_开源一个Python文档写作应用:MrDoc
  9. 如何入门分子动力学模拟?
  10. 用jquery编写简易计算器
  11. C标准库源码解读(VC9.0版本)——ctype.h
  12. 1, 定义一个基类BaseClass,从它派生出类DerivedClass。BaseClass里有成员函数fn1(),fn2(),DerivedClass也有成员函数fn1(),fn2()。在主函数中
  13. 3322动态域名,nat123动态域名解析,dnspod域名解析,等相关免费动态域名解析软件对比
  14. tx2上装scikit-image
  15. 问题及解决方法记录:A component required a bean of type ‘org.springframework.web.client.RestTemplate‘ that cou
  16. C#WinForm 分屏教程合集
  17. android各个版本的发布时间
  18. 全网营销都有那些渠道
  19. 关于找到pycharm中jetbrains-agent更新的打开路径的方法
  20. 等待指示器(2) -- 网络等待指示器

热门文章

  1. 正则表达式 python3_python3正则表达式总结
  2. html页面送值转换,在静态页面html中跳转传值
  3. python面向对象代码_两百行代码搞定!使用Python面向对象做个小游戏
  4. C++Primer学习第四章
  5. OpenShift 4 - 在集群节点用crictl对Pod/Image/Container进行操作
  6. OpenShift 4.3 - 基于虚拟机的BareMetal离线安装(1-2)
  7. OpenShift 4 之AMQ Streams(3) - 用Kafka MirrorMaker在Kafka集群间复制数据
  8. 设置Android AI开发环境
  9. Tableau中的行级数据安全性——第1部分
  10. 甲骨文谷歌继续打官司:美最高法院同意复审 Java API 版权诉讼案