万用字元与特殊符号及正则表示字符

  万用字元: 

符号 意义
* 代表‘ 0 个到无穷多个’任意字元
? 代表‘一定有一个’任意字元
[ ] 同样代表‘一定有一个在括号内’的字元(非任意字元)。例如 [abcd] 代表‘一定有一个字元, 可能是 a, b, c, d 这四个任何一个’
[ - ] 若有减号在中括号内时,代表‘在编码顺序内的所有字元’。例如 [0-9] 代表 0 到 9 之间的所有数字,因为数字的语系编码是连续的!
[^ ] 若中括号内的第一个字元为指数符号 (^) ,那表示‘反向选择’,例如 [^abc] 代表 一定有一个字元,只要是非 a, b, c 的其他字元就接受的意思。

  bash 环境中的特殊符号:

符号 内容
# 注解符号:这个最常被使用在 script 当中,视为说明!在后的资料均不执行
\ 跳脱符号:将‘特殊字元或万用字元’还原成一般字元
| 管线 (pipe):分隔两个管线命令的界定(后两节介绍);
; 连续指令下达分隔符号:连续性命令的界定 (注意!与管线命令并不相同)
~ 使用者的家目录
$ 取用变数前置字元:亦即是变数之前需要加的变数取代值
& 工作控制 (job control):将指令变成背景下工作
! 逻辑运算意义上的‘非’ not 的意思!
/ 目录符号:路径分隔的符号
>, >> 资料流重导向:输出导向,分别是‘取代’与‘累加’
<, << 资料流重导向:输入导向 (这两个留待下节介绍)
' ' 单引号,不具有变数置换的功能
" " 具有变数置换的功能!
` ` 两个‘ ` ’中间为可以先执行的指令,亦可使用 $( )
( ) 在中间为子 shell 的起始与结束
{ } 在中间为命令区块的组合!
特殊符号 代表意义
[:alnum:] 代表英文大小写字元及数字,亦即 0-9, A-Z, a-z
[:alpha:] 代表任何英文大小写字元,亦即 A-Z, a-z
[:blank:] 代表空白键与 [Tab] 按键两者
[:cntrl:] 代表键盘上面的控制按键,亦即包括 CR, LF, Tab, Del.. 等等
[:digit:] 代表数字而已,亦即 0-9
[:graph:] 除了空白字元 (空白键与 [Tab] 按键) 外的其他所有按键
[:lower:] 代表小写字元,亦即 a-z
[:print:] 代表任何可以被列印出来的字元
[:punct:] 代表标点符号 (punctuation symbol),亦即:" ' ? ! ; : # $...
[:upper:] 代表大写字元,亦即 A-Z
[:space:] 任何会产生空白的字元,包括空白键, [Tab], CR 等等
[:xdigit:] 代表 16 进位的数字类型,因此包括: 0-9, A-F, a-f 的数字与字元
  基础正则表示法字符汇整 (characters):

  正则表示法特殊字符汇整如下:

RE 字符 意义与范例
^word 意义:待搜寻的字串(word)在行首!
范例:搜寻行首为 # 开始的那一行,并列出行号

grep -n '^#' regular_express.txt

word$ 意义:待搜寻的字串(word)在行尾!
范例:将行尾为 ! 的那一行列印出来,并列出行号

grep -n '!$' regular_express.txt

. 意义:代表‘一定有一个任意字元’的字符!
范例:搜寻的字串可以是 (eve) (eae) (eee) (e e), 但不能仅有 (ee) !亦即 e 与 e 中间‘一定’仅有一个字元,而空白字元也是字元!

grep -n 'e.e' regular_express.txt

\ 意义:跳脱字符,将特殊符号的特殊意义去除!
范例:搜寻含有单引号 ' 的那一行!

grep -n \' regular_express.txt

* 意义:重复零个到无穷多个的前一个 RE 字符
范例:找出含有 (es) (ess) (esss) 等等的字串,注意,因为 * 可以是 0 个,所以 es 也是符合带搜寻字串。另外,因为 * 为重复‘前一个 RE 字符’的符号, 因此,在 * 之前必须要紧接着一个 RE 字符喔!例如任意字元则为 ‘.*’ !

grep -n 'ess*' regular_express.txt

[list] 意义:字元集合的 RE 字符,里面列出想要撷取的字元!
范例:搜寻含有 (gl) 或 (gd) 的那一行,需要特别留意的是,在 [] 当中‘谨代表一个待搜寻的字元’, 例如‘ a[afl]y ’代表搜寻的字串可以是 aay, afy, aly 即 [afl] 代表 a 或 f 或 l 的意思!

grep -n 'g[ld]' regular_express.txt

[n1-n2] 意义:字元集合的 RE 字符,里面列出想要撷取的字元范围!
范例:搜寻含有任意数字的那一行!需特别留意,在字元集合 [] 中的减号 - 是有特殊意义的,他代表两个字元之间的所有连续字元!但这个连续与否与 ASCII 编码有关,因此,你的编码需要设定正确(在 bash 当中,需要确定 LANG 与 LANGUAGE 的变数是否正确!) 例如所有大写字元则为 [A-Z]

grep -n '[0-9]' regular_express.txt

[^list] 意义:字元集合的 RE 字符,里面列出不要的字串或范围!
范例:搜寻的字串可以是 (oog) (ood) 但不能是 (oot) ,那个 ^ 在 [] 内时,代表的意义是‘反向选择’的意思。 例如,我不要大写字元,则为 [^A-Z]。但是,需要特别注意的是,如果以 grep -n [^A-Z] regular_express.txt 来搜寻,却发现该档案内的所有行都被列出,为什么?因为这个 [^A-Z] 是‘非大写字元’的意思, 因为每一行均有非大写字元,例如第一行的 "Open Source" 就有 p,e,n,o.... 等等的小写字

grep -n 'oo[^t]' regular_express.txt

\{n,m\} 意义:连续 n 到 m 个的‘前一个 RE 字符’
意义:若为 \{n\} 则是连续 n 个的前一个 RE 字符,
意义:若是 \{n,\} 则是连续 n 个以上的前一个 RE 字符! 范例:在 g 与 g 之间有 2 个到 3 个的 o 存在的字串,亦即 (goog)(gooog)

grep -n 'go\{2,3\}g' regular_express.txt

  说明

  ‘正规表示法的特殊字元’与一般在指令列输入指令的‘万用字元’并不相同, 例如,在万用字元当中的 * 代表的是‘ 0 ~ 无限多个字元’的意思,但是在正规表示法当中, * 则是‘重复 0 到无穷多个的前一个 RE 字符’的意思~使用的意义并不相同,不要搞混了!

  举例来说,不支援正规表示法的 ls 这个工具中,若我们使用 ‘ls -l * ’ 代表的是任意档名的档案,而 ‘ls -l a* ’代表的是以 a 为开头的任何档名的档案, 但在正规表示法中,我们要找到含有以 a 为开头的档案,则必须要这样:(需搭配支援正规表示法的工具)

ls | grep -n '^a.*'

例题:

以 ls -l 配合 grep 找出 /etc/ 底下档案类型为连结档属性的档名

答:

由于 ls -l 列出连结档时标头会是‘ lrwxrwxrwx ’,因此使用如下的指令即可找出结果:

ls -l /etc | grep '^l'

若仅想要列出几个档案,再以‘ |wc -l ’ 来累加处理即可。

转载于:https://www.cnblogs.com/skydragon/p/7135941.html

万用字元与特殊符号及正则表示字符相关推荐

  1. 全球IT支出保持稳定增长 中国IT支出将超2.3万亿元

    全球信息技术研究和顾问公司Gartner预测,2016年全球IT支出将维稳在3.41万亿美元的水准,高于上季度全年0.5%负增长的预测,而股市的持续波动是造成此差异的主要原因.不过,该公司研究副总裁L ...

  2. 成都2018年GDP超1.5万亿元 比上年增长8.0%

    中新网1月28日电 记者28日从成都市人民政府新闻办公室获悉,2018年成都市实现地区生产总值15342.77亿元,按可比价格计算,比上年增长8.0%(下同),高于全国1.4个百分点. 分产业看,第一 ...

  3. 总量迈过90万亿元关口 中国经济交出稳健答卷

    中新社北京1月21日电(记者 王恩博)90万亿元(人民币,下同)!中国官方21日公布2018年经济成绩单,中国经济总量再度站上新台阶. 资料图为成都在建中的468米最高建筑.中新社记者 张浪 摄 国家 ...

  4. 未来3年,大数据市场规模将达到万亿元

    不可置否,2016年是真正意义上的大数据元年.昨日,阿里云发布大数据平台"数加",集合了计算引擎.开发套件.可视化工具和行业解决方案.这是全球首个囊括前.中.后台的大数据一站式开发 ...

  5. 物联网:应用创新带来万亿元市场前景

    近年来,我国物联网产业获得了飞速发展.无论是项目建设还是实际应用都取得了长足进步.随着"中国制造2025"."互联网+"等国家战略的推进,物联网产业也将迎来更广 ...

  6. 独家专访 | 红布林(Plum​)庞博:万亿元二手时尚交易蓝海的生存法则

    近日,二手时尚电商 红布林(Plum)完成 2000 万美金 B+ 轮融资.领投方为某著名美元母基金和日本最大的人力资源和互联网公司 Recruit,同时一些老股东也持续加码跟投. 红布林(Plum) ...

  7. c语言输入十个英文国名,c语言程式设计 在主函式输入10个字元,用子函式求出共输入几个英文字元,几个数字字元,几个符号%...

    c语言程式设计 在主函式输入10个字元,用子函式求出共输入几个英文字元,几个数字字元,几个符号%以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我 ...

  8. 国内首家!华为获5G核心网电信设备进网许可证;亚马逊或颠覆博通等芯片制造商?2020年5G总投资额达0.9万亿元……...

    关注并标星星CSDN云计算 速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周两次,打卡即read   更快.更全了解泛云圈精彩news   go ...

  9. 互联网晚报 | 11月21日 星期日 | B站公布《三体》动画首个预告片;涪陵榨菜回应天价礼盒;农行个人贷款余额突破7万亿元...

    今日看点 ✦ 涪陵榨菜回应"天价榨菜"礼盒:只是尝试,业绩提升仍靠大众款产品 ✦ B站举办2021-2022国创动画作品发布会,公布<三体>动画首个预告片 ✦ 上汽奥迪 ...

最新文章

  1. PCL滤波介绍(1)
  2. Redis集群——利用Gearman在Lnmp架构中做MySQL的缓存服务器
  3. 【DRF框架】序列化组件——字段验证
  4. jmeter(三)参数化
  5. 干货!sqlserver数据库所有知识点总结整理,含代码(挺全的)
  6. Redis(案例一:注册登录-图形验证码+谷歌开源Kaptcha)
  7. Nginx - 代理、缓存
  8. mysql fetch field_PHP mysql_fetch_field() 函数
  9. 面向对象13:单元测试方法、包装类的使用、包装类面试题
  10. 联想计算机电源风扇怎样清理,电脑怎么清灰加硅脂 联想笔记本清灰换硅脂图文教程...
  11. 华科计算机硕士毕业论文,华中科技大学硕士毕业论文要求_华中科技大学2020年硕士招生简章_华中科技大学研究生院...
  12. 一家计算机专卖店A型计算器,A型计算器谱子 | 手游网游页游攻略大全
  13. LabVIEW采集鼠标、键盘数据
  14. 撸了一个「合成大西瓜」
  15. 利用电阻分压网络测量电池电压注意事项
  16. python:实现绘制粽子(附完整源码)
  17. 【Android Camera1】Camera1 Parameters参数详解(一)—— Size (preview/picture/thumbnail)
  18. windows下安装Python和安装Python解释器
  19. IIC通信协议(硬件实现IIC通信详解I)
  20. ChannelNets: 省力又讨好的channel-wise卷积,在channel维度进行卷积滑动 | NeurIPS 2018

热门文章

  1. 遥感或DEM像素深度如何降为8bit
  2. Python微信防撤回,基于itchat模块
  3. webpack整合bable
  4. 【读书摘录】《沉默的大多数》(王小波)
  5. 全球及中国没药香精油行业研究及十四五规划分析报告
  6. C/C++ fabs 函数 - C语言零基础入门教程
  7. 手机热点通过蓝牙共享给电脑
  8. qq手机邮箱服务器设置方法,手机qq邮箱imap设置图文教程
  9. 高中会考计算机都考啥,高中会考都有哪些科目
  10. murmur3 php,murmur: 更快更好的哈希函数