Linux文本处理三剑客sed和awk

grep awk sed是Linux下文本处理常用的命令,这篇笔记就是详细阐述文本三剑客的用法

概述:

grep:文本过滤器,仅仅是过滤文本,没有编辑功能

sed:Stream EDitor,流编辑器,可以按照特定规则按行编辑数据(sed是不处理原数据的,编辑完的行默认是打印到屏幕,所以sed运行完原文件内容是不变的)

awk:报告生成器,可以根据特定字符分割行(如空格、冒号、顿号等),然后按照你设定的格式显示。(如果对处理的数据需要生成报告之类的信息,或者你处理的数据是按列进行处理的,最好使用 awk)

grep 更适合单纯的查找或匹配文本

sed 更适合编辑匹配到的文本(尤其擅长替换)

awk 更适合格式化文本,对文本进行较复杂格式处理(擅长取列)

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把匹配到的行打印出来)

是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。用于过滤/搜索的特定字符。

格式:grep 选项 '命令' 文件名

 

sed

sed是从文件或管道中读取一行,处理一行,输出一行;再读取一行,再处理一行,再输出一行,直到 最后一行。每当处理一行时,把当前处理的行存储在临时缓冲区中,称为 模式空间( Pattern Space ) ,接着用 sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下 一行,这样不断重复,直到文件末尾。一次处理一行的设计模式使得 sed 性能很高, sed在读取大文件时 不会出现卡顿的现象。如果使用 vi 命令打开几十 M 上百 M的文件,明显会出现有卡顿的现象,这是因为 vi 命令打开文件是一次性将文件加载到内存,然后再打开。 Sed就避免了这种情况,一行一行的处理, 打开速度非常快,执行速度也很快

格式:sed 选项 '命令' 文件名

地址定界

编辑命令

高级命令 

替换 

s/搜索内容/替换内容/:查找替换,支持使用其他分隔符,s@@@,s###

awk 

awk是一种处理文本文件的语言,是一个强大的文本分析工具,它是专门为文本处理设计的编程语言,也是行处理软件,通常用于扫描、过滤、统计汇总工作数据可以来自标准输入也可以是管道或文件

格式:awk 选项 '命令' 文件名

内置变量

 BEGIN和END

逐行执行开始之前执行什么任务,结束之后再执行什么任务,用BEGIN、END。BEGIN一般用来做初始化操作,仅在读取数据记录之前执行一次。END一般用来做汇总操作,仅在读取完数据记录之后执行一次

运算符

数组 

awk可以使用关联数组这种数据结构,索引可以是数字或字符串。awk关联数 组也不需要提前声明其大小,因为它在运行时可以自动的增大或减小


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值