grep、sed、awk个人备忘(补充中)

声明:个人整理+参考博文!

参考文章如下:

详细grep、sed、awk》:https://www.cnblogs.com/caicairui/p/8616845.html

 

目录

1. grep

2. sed

3. awk

3.2 疑问点


1. grep

 

2. sed

2.1 语法说明

流编辑器,过滤和替换文本。

工作原理:sed命令将当前处理的行读入模式空间进行处理,处理完把结果输出,并清空模式空间。然后再将下一行读入模式空间进行处理输出,以此类推,直至最后一行。

用法:sed [OPTION]... {script-only-if-no-other-script} [input-file]...

sed [选项] '地址 命令' file

选项描述
-n不打印模式空间
-e执行脚本-表达式来处理
-f脚本文件的内容添加到命令被执行
-i修改源文件
-r使用扩展正则表达式
命令m描述
s/regexp/replacement/t替换字符串
pd打印当前模式空间
Pd打印模式空间的第一行
ds删除模式空间,并且开始下一个循环
Ds删除模式空间的第一行,开始下一个循环
=d打印当前行号
a \textd当前行追加文本
i \textd当前行上面插入文本
c \texts所选行替换文本
ql立即退出sed脚本
rz追加文本来自文件
地址m描述
first~stepb步长,每step行,从first开始
$p匹配最后一行
/regexp/z正则表达式匹配行
numberz只匹配制定行
addr1、addr2k开始匹配addr1开始,直接addr2行结束
addr1,+Nc从addr1行开始,向后的N行
addr1,~Nc从addr1行开始,到N行结束

3. awk

3.1 语法说明

awk是一个处理文本的编程语言工具,能用简短的程序处理输入文件、数据排序、计算以及生产报表等等。

在Linux系统下默认awk是gawk,它是awk的GUN版本。可以通过命令查看应用的版本:ll /bin/awk

基本的命令语法:awk option 'patten {action}' file

其中pattern表示AWK在数据中查找的内容,而action是在找到匹配内容时所执行的一系列命令。花括号用于根据特定的模式对一系列指令进行分组。

pattern参数可以是egrep正则表达式的任意一个,使用/re/再加上一些样式匹配,匹配方式与sed类似,也可以使用“,”分开两样式以选个某个范围。

awk处理的工作方式与数据库类似,支持对记录和字段处理,这也是grep和sed不能实现的。

在awk中,缺省的情况下将文本文件中一行视为一个记录,而将一行中的某一部分作为记录中的一个字段,用1,2,3....数字的方式顺序的表示行(记录)中的不同字段。用$后跟数字,引用对应的字段,以逗号分割,0表示整个行。

选项m描述
-f program-filec从文件中读取awk程序源文件
-F fsz指定fs为输入字段分隔符
-v var=valueb变量赋值
--posixz只支持POSIX正则表达式

PatternDescription
BEGIN{ }g给程序赋予初始状态,先执行的工作
END{ }c程序结束之后执行的一些扫尾工作
/regular expression/w为每个输入记录匹配正则表达式
pattern && patternl逻辑and,满足两个模式

pattern || pattern

逻辑或,满足其中一个模式
! patternl逻辑非,不满足模式
pattern1,pattern2f范围模式,匹配所以1的记录,直到匹配到模式2

3.2 疑问点

1.

Q:如下-F"[ ,]+" 什么含义?

[root@VM_0_7_centos tmp]# cat test

I am cai,my qq is

[root@VM_0_7_centos tmp]# awk -F"[ ,]+" '{print $3" "$6}' test

cai is

A:见如下正则表达式说明中[]和+

也即以一个或多个"空格"或","做为字段分隔符。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值