Shell编程---grep和awk&正则表达式

本文介绍了Shell编程中grep和awk命令的用途、使用格式及选项,包括匹配查找文件内容、忽略大小写、输出匹配行数等功能。同时,概述了awk命令用于匹配查找域内容的能力,以及不同命令结构。最后,文中还涉及了正则表达式的应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

grep、awk、sed命令是shell编程的三个重要命令,学习了grep、awk后感觉暂时够用了,于是sed也就没看了。下面先对前面这两个命令总结一下。

一、grep命令

我理解的
用途:匹配查找文件/字符串的内容
输出形式:行
使用格式: grep [选项] 字符串/正则表达式 [文件]
管道符格式: |grep [选项] 字符串/正则表达式
(其实就是通过管道符作为输入取代后面的 [文件] 选项)

【选项】:
-n 显示航航
-v 去掉不匹配文本
-i 忽略大小写
-c 输出匹配行数
-h 查询多文件时不显示文件名
-l 只输出文件名(多文件)

二、awk命令

我理解的
用途:匹配查找域内容
输出形式:域
使用格式:awk [-F 分隔符] ‘commands’ file
(分隔符可不指定,默认空格;管道符格式同grep)

‘commands’格式:
‘BEGIN {…} {…} END {…}’
‘BEGIN {…} {…}’
‘BEGIN {…}’
‘{…} END {…}’
‘{…}’
BEGIN、END部分打印头部消息和尾部消息。

三、实例

部分结合正则表达式。

grep "bing" 1.txt  #打印1.txt中bing字符串那行
grep '[Dd]ave' 1.txt #查找Dave或dave
echo $list |grep '^jack$'#精确匹配jack行首行尾
ip=`echo $1 |grep '192\.168\.[0-9]\{1,3\}\.[0-9]\{1,3\}'`  #ip地址检查,补充\{n\}, \{n,\}
grep '^.$' 1.txt #匹配单字符行
grep '^..w' 1.txt #匹配第三个字符为w的行
grep '\babc\b' 1.txt #\b为单词边界,\B为非边界

awk '$2=="44" {print $0}' 1.txt #精确匹配,补充!=,<,<=,>,>=
awk '$0 ~ /jack/' 1.txt #~为匹配正则表达式,!~为不匹配
awk '/[Gg]reen/' 1.txt #匹配正则表达式G/green
awk '$1 ~ /^...a/' 1.txt #第四个字符为a
awk '$0 ~ /(green|yellow)/ {print $1}' 1.txt
awk '{if($2~/22/) print $0}'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值