shell中的正则表达式

2 篇文章 0 订阅

1.grep
grep是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。

grep   root   passwd搜索全文中的root
grep  ^root  passwd搜索全文中以root开头的
grep  root$  passwd搜索全文中以root结尾的
grep -i root   passwd忽略大小写
grep -E "root|ROOT" passwd同时匹配多个条件

grep root passwd搜索全文中的root在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
2.sed
SED是一项Linux指令,功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大。sed用来操作纯 ASCII 码的文本。

sed 对字符的处理
p 	显示
d 	删除
a 	添加
c 	替换
w 	写入
i 	插入

p 模式操作

sed -n '/\:/p' fstab
sed -n '/UUID$/p' fstab
sed -n '/^UUID/p' fstab
sed -n '2,6p' fstab
sed -n '2,6!p' fstab

d 模式操作

sed  '/^UUID/d' /etc/fstab
sed  '/^#/d' /etc/fstab
sed  '/^$/d'/etc/fstab
sed   '1,4d'/etc/fstab
sed  –n '/^UUID/!d' /etc/fstab

a 模式操作

sed '/^UUID/a \hello sed /etc/fstab
sed '/^UUID/a \hello sed\nwestos /etc/fstab'

i 模式操作

sed '/^UUID/i\hello sed\nwestos /etc/fstab'

c 模式操作

sed '/^UUID/c\hello sed\nwestos /etc/fstab'

w 模式操作

sed  '/^UUID/w /tmp/fstab.txt' /etc/fstab
sed  -n'/^UUID/w /tmp/fstab.txt' /etc/fstab
sed  '/^UUID/='/etc/fstab
sed  '6r /etc/issue' /etc/fstab

sed 的其他用法

sed  -n  '/^UUID/=' fstab
sed  -n -e ‘/^UUID/p'    -e    '/^ UUID/=' fstab
sed   -e 's/brown/green/; s/dog/cat/' data
sed  -f rulesfile file
sed  's/^\//#/'/etc/fstab
sed  's@^/@#@g'/etc/fstab
sed  's/\//#/'/etc/fstab
sed  's/\//#/g/'/etc/fstab
sed  'G' data
sed  '$!G' data
sed  '=' data | sed 'N; s/\n/ /'
sed -n '$p' data

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.awk
AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言(其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母)的最大功能取决于一个人所拥有的知识。AWK 提供了极其强大的功能:可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上 AWK 的确拥有自己的语言:AWK 程序设计语言, 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。

linux 上面默认使用 gawk

(1)awk的基本用法

在这里插入图片描述
awk -F : ‘{print $1}’ passwd
打印passwd文件的以:为分隔符的第一列字符

在这里插入图片描述
awk -F : ‘{print $1$2}’ passwd
打印第一列和第二列,不出现:分隔符

在这里插入图片描述

awk -F : ‘{print $2}’ passwd 打印第二列

在这里插入图片描述

awk -F : ‘BEGIN{print “linux”}{print $2}’ passwd 打印第二列,并且在最前面加上linux

在这里插入图片描述
awk -F : ‘BEGIN{n=1}{print $2,n}’ passwd 在第二列后面 均写上1

在这里插入图片描述

awk -F : ‘BEGIN{n=1}{print $2,n++}’ passwd打印第二列,并且编号

在这里插入图片描述

awk ‘{print FILENAME}’ passwd输出文件名字在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值