linux --> shell --> grep

linux下的shell命令学习笔记007

# ----------------------------------------

# grepegrep

# 这个是我自己写的最适合我的mian.c文件的函数查找方法

# 为什么有时候:()|?等符号的时候必须用使用\转义?

# 我用Ubuntu测试,需要转义,例子如下

grep '^\(static \)\?\(\(void\|int\|char\) \)\?[a-zA-Z_][a-zA-Z_0-9]*(.*)' main.c

 

# 经过实践,写了如下脚本用来测试:(明白了)

 

#! /bin/bash

echo "---------------start------------------"

# 标准的grep,使用时需要注意括号,问号,或符号等默认是原始含义

# 若要使用他们的正则表达式中的含义,需要转义

grep -n --color=auto '\(static \)\?\(\(void\|int\|char\) \)[a-zA-Z_][a-zA-Z_0-9]*(\(.*\))' main.c

echo "----------------1---------------------"

# 标准的grep-E 表示使用扩展的正则表达式

grep -E -n --color=auto '(static )?((void|int|char) )[a-zA-Z_][a-zA-Z_0-9]*(\(.*\))' main.c

echo "----------------2---------------------"

# egrep:扩展型正则表达式

# 可以直接使用:例如:

# | 表示""

# ? i表示0个或者1

# ...

egrep -n --color=auto '(static )?((void|int|char) )[a-zA-Z_][a-zA-Z_0-9]*(\(.*\))' main.c

echo "---------------end--------------------"

 

 

# -------------------------------------

# grep相关参数:

#-E 见上

#-n 见上

#-A[number] 显示关键字所在行的同时也把它的后number行都显示

#-v 反向选择

#-i 不区分大小写

 

 

# --------------------------------------

# 正则表达式 (基础的)

# ^word行首 word$行尾 ----- 若找空行 '^$'

# .代表此处必定存在1个任意的字符

# * 代表0到无穷多个的前一个字符

# [list] 从字符集的RE字符中找到想要选出的字符,仅选其中之一

# [n1-n2] n1n2的连续字符的集合,这是个可以选取的范围

# [^list] 从字符集的RE字符中找到不要的字符串或范围,类似反向操作

# \{n,m\} 连续n个到m个前一个RE字符

# \{n\} 连续n个前一个RE字符

# \{n,\} 连续n个以上的前一个RE字符

 

# --------------------------------------

# grep 应用

# 1. ls -l | grep '^d'

# 2. ls -a | grep '^\.'

 

# --------------------------------------

# 扩展的正则表达式

# grep -E 或者 egrep

# + 重复1个或1个以上的前一个RE字符

# ? 重复0个或1个前一个RE字符

# | ""操作

# () 组,例如'b(oo|ea)t'

# ()+ 多个重复组的判别,例如:cat 1.txt | grep -E '^(ha|Ha)+'

#

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值