Linux系统的三剑客

本文介绍了Linux系统的三大命令工具:grep、sed和awk。grep是文本搜索工具,能根据模式匹配行;sed是一个文本解析转换工具,适用于自动化文本处理任务;awk逐行处理文本,擅长按字段操作,并支持逻辑运算和简单数学运算。
摘要由CSDN通过智能技术生成

前言

Linux系统的三剑客一定听说过,他们分别是grep,sed和awk,下面就来详细介绍一下,这三个命令的含义和用法。

一、grep命令

含义:文本搜索工具,根据用户指定的 “模式” 对目标文本逐行进行匹配检查,打印匹配到的行。

格式

grep [选项] [匹配模式] [文件]
常用选项
-m	匹配指定次数后停止
-v	显示不被模式匹配到的行,取反
-i	忽略字符大小写
-n	显示行号
-c	统计匹配的行数
-o	仅显示匹配到的字符
-E	使用扩展正则表达式,相当于 egrep
-F	不支持正则表达式,相当于 fgrep
-r	递归目录,但不处理软链接
-R	递归目录,但处理软链接

1.查找特定字符

# 从 test.txt 文件中查找出特定字符“the”所在位置。其中“-n”表示显示行号、“-i”表示不区分大小写。
grep -n 'the' test.txt
#若反向选择,如查找不包含“the”字符的行,则需要通过 grep 命令的“-v”选项实现
grep -vn 'the' test.txt

2.利用中括号“[]”来查找集合字符

 grep -n 'sh[io]rt' test.txt
 #想要查找“shirt”与“short”这两个字符串时,可以发现这两个字符串均包含“sh”与“rt”。此时执行此命令即可同时查找到“shirt”与“short”这两个字符串,其中“[]”中无论有几个字符, 都仅代表一个字符,也就是说“[io]”表示匹配“i”或者“o”
 grep -n 'oo' test.txt
 #若要查找包含重复单个字符“oo”时,只需要执行此命令即可
 grep -n '[^w]oo' test.txt
 #若查找“oo”前面不是“w”的字符串,只需要通过集合字符的反向选择“[^]”来实现该目的。例如执行“grep -n‘[^w]oo’test.txt”命令表示在 test.txt 文本中查找“oo”前面不是“w”的字符串

3.查找行首“^”与行尾字符“$”

grep -n '^the' test.txt
#基础正则表达式包含两个定位元字符:“^”(行首)与“$”(行尾),如果想要查询以“the”字符串为行首的行,则可以通过“^”元字符来实现。
grep -n '^$' test.txt
#查询空白行

“^”符号在元字符集合“[]”符号内外的作用是不一样的,在“[]”符号内表示反向选择,在“[]” 符号外则代表定位行首。反之,若想查找以某一特定字符结尾的行则可以使用“$”定位符。例如,执行以下命令即可实现查询以小数点(.)结尾的行。因为小数点(.)在正则表达式中也是一个元字符,所以在这里需要用转义字符“\”将具有特殊意义的字符转化成普通字符。

4.查找任意一个字符“.”与重复字符“*”

在正则表达式中小数点(.)也是一个元字符,代表任意一个字符。例如执行以下命令就可以查找“w??d”的字符串,即共有四个字符,以 w 开头 d 结尾。

grep -n 'w..d'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值