1. sed这个命令最大的作用就是替换,以以下的文档内容为例子

在vim的命令行模式下可以使用:%s/some/more/将文档中some替换成more

用sed命令就方便多了: sed  's/some/more/g' data.txt --这里没有修改文档原文,最多算个预览

sed  -i 's/some/more/g' data.txt   -------有了i参数可以直接将修改保存在文档中

sed 's/^/&id /g' data.txt 在文档每一行的行头添加id+空格

cat data.txt | grep -v '^$' | sed 's/^/&id /g' ---在每一行的非空格行的行头添加id,^符号表示开头

可以看到这里的空格行不在了,那是grep -v '^$' 导致的,grep将在后面讲到

sed 's/$/& id /g' data.txt 在文档每一行的结尾添加空格+id,$符表示结尾

sed '/some/i ##########################' data.txt 在有some的那一行前添加一行#,i参数

sed '/some/a ##########################' data.txt 在有some的那一行后添加一行#,a参数

sed -n '/some/p' data.txt  打印含有some的行,-n就是针对行做操作,p参数就是答应,sed负责挑选

也可以选择指定的行做操作:sed -n '1,5p' data.txt 打印1-5行

以下是结合其它命令对文档进行指定操作:

以上是原始文档,最终的目的是要选出文档中最大和最小的数字

cat number.txt | sed 's/ /\n/g' | grep -v "^$" | sort -nr | sed -n '1p;$p'

现在来拆解这些命令

cat number.txt | sed 's/ /\n/g'  --将文档中的空格符替换成换行符,这样所有的数字就变成一列了

cat number.txt | sed 's/ /\n/g' | grep -v "^$" 将排成一列中的空格行去掉,排除首位都是空的

cat number.txt | sed 's/ /\n/g' | grep -v "^$" | sort -nr  sort从大到小排序所有数字

cat number.txt | sed 's/ /\n/g' | grep -v "^$" | sort -nr | sed -n '1p;$p' 打印出第一行和最后一行用;

其中的$表示结尾而;表示前面和后面是分开打印不是连续的用,则是连续打印多行sed -n '1,5p'这样

2.grep 命令的作用主要是匹配字符

cat number.txt | grep "4" 表示匹配含有45的那一行

cat number.txt | grep -v "4" 表示排除包含有4这个字符的那一行,这里的“”和‘’没有什么区别

在安装软件时grep命令去查看:rpm -qa | grep mysql ---查看mysql的一些相关的安装包

用sed命令去修改某些文件:sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config ---永久关闭selinux

cat number.txt | grep "40" ---寻找有含有40的所有行

cat number.txt | grep "5"| sed 's/45/robin/g' ---将匹配中的行中的45替换成robin

cat number.txt | grep -v "5" ------显示出没有5存在的所有行

grep "^my" data.txt  --找出以my开头的所有行

grep "it$" data.txt  ---找出以it结尾的所有行

grep "[0-9]" data.txt --找出包含0-9的所有行

grep "[a-z]" data.txt --找出包含a-z的所有行

grep "^[a-z]" data.txt --找出以a-z开头的行

grep "^172$" data.txt  --找出只有172这一行

grep -n "172" data.txt  ---打印行号

grep -n "^$" date.txt  --显示空行的行号

转载于:https://blog.51cto.com/beforce/1912347

linux学习之sed grep相关推荐

  1. Linux学习笔记Sed最全整理

    本文分为四部分,前两部分都是比较基础的用法. 如果你对Sed感兴趣的话,可以去尝试读一下后面几个章节. 你完全可以根据你的水平去选择其中的某一个章节阅读. 目录 目录 初级入门 主要应用场景 删除 查 ...

  2. Linux学习之sed编辑器

    一 介绍: sed流编辑器(stream editor)的功能强大,能把文档或字符串通过自己想要的方式或内容输出至屏幕或文件,通常和正则表达式密切配合. 二 命令详细内容 sed命令:  sed [o ...

  3. linux我ll查不到usr,Linux学习-文件查寻

    Linux学习---文件查找 grep, egrep, fgrep  :文本查找 文件查找 locate 全系统查找,非实时,模糊匹配.查找时根据全系统文件数据库进行的. 系统在每天的计划任务时间生成 ...

  4. Linux实战教学笔记12:linux三剑客之sed命令精讲

    第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...

  5. linux中sed命令用例,Linux中使用sed命令或awk命令修改常规配置文件

    一.方案: Linux中使用sed命令或awk命令修改常规配置文件 二.步骤: 1.假设有一个a.txt,内容如下: #!/bin/bash aa= bbb= ccc= #ddd= 2.如果想要把里面 ...

  6. Linux学习 - awk使用

    欢迎关注微信公众号生信宝典:http://mp.weixin.qq.com/s/8wD14FXt7fLDo1BjJyT0ew Linux学习系列文章是生信宝典最开始主推的一块,力图从一个新额视角帮助初 ...

  7. Linux学习 - 常用和不太常用的实用awk命令

    欢迎关注生信宝典:http://mp.weixin.qq.com/s/8wD14FXt7fLDo1BjJyT0ew Linux学习系列文章是生信宝典最开始主推的一块,力图从一个新额视角帮助初学者快速入 ...

  8. Linux学习笔记10

    Linux学习笔记10 Linux学习笔记10 正则表达式 源码包约定目录 Shell脚本约定目录 Shell脚本的创建与执行 date命令 同步时间 Shell脚本预设变量 与用户交互 数学计算 S ...

  9. linux脚本是什么语言,Linux学习之Shell脚本语言的优势是什么?

    当我们学习Linux技术的时候,会涉及各种各样的知识和内容,比如说shell脚本语言,我想很多人都会疑惑shell脚本语言有什么优势?为何学习Linux的时候必须学习呢?我们来看看吧. 当命令和程序语 ...

最新文章

  1. MySQL查询区分大小写
  2. 为什么交叉熵和KL散度在作为损失函数时是近似相等的
  3. 【UIKit】解决iOS7状态栏问题
  4. 三维视觉传感器的类型
  5. 图解用Fiddler做http协议分析入门
  6. 真实而震撼:同班同学20年后,身价15亿与月薪5000元的区别
  7. 《系统集成项目管理工程师》必背100个知识点-47质量保证人员(QA)的主要工作...
  8. GPU虚拟化时代的到来(vGPU)!CitrixNVIDIA联合研发虚拟化共享GPU技术预览
  9. 利用matlab画混淆矩阵(confusion matrix)
  10. SAP Cloud for Customer 技术概述
  11. QPainter函数setClipRect
  12. python字符串输入_python如何输入字符串
  13. Java学习的快速入门:10行代码学JQuery
  14. 训练日志 2019.1.13
  15. 2021-11-01 Excel之九九乘法表
  16. ubuntu没有指纹登录_Thinkpad在Ubuntu 20.04下使用指纹登陆
  17. SpringBoot学习笔记(4):自定义的过滤器
  18. Java 高阶 —— 相等性比较
  19. Python技能树及Markdown编辑器测评 20212109施铖哲
  20. python爬虫实战---网易云音乐评论抓取

热门文章

  1. failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
  2. SQL Server-聚焦sp_executesql执行动态SQL查询性能真的比exec好?
  3. 将object类型参数值传递给ObjectDataSource
  4. 【Spring实战】—— 5 设值注入
  5. 浅析MySQL InnoDB的隔离级别
  6. 程序员的视角:java GC
  7. 前端项目课程7 banner设计注意事项
  8. DDoS***、CC***的***方式和防御方法
  9. Android -- Intent
  10. 20170208--正则表达式