# 正则表达式与文件格式化处理

  • 正则表达式就是处理字符串的方法,它是以行为单位来进行字符串的处理操作。
  • 正则表达式通过一些特殊符号的辅助,可以让用户轻易实现【查找、删除、替换】某特定字符串的处理过程。
  • 正则表达式基本上是一种【表示法】,只要工具程序支持正则表达式,那么该工具程序就可以用来作为正则表达式的字符串处理之用。
  • 正则表达式与通配符是完全不一样的东西,通配符(wildcard)代表的是bash的一个功能,但正则表达式则是一种字符串处理的表达方式。
  • 使用grep或其他工具进行正则表达式的字符串对比时,因为编码的问题会有不同的状态,因此,你最好将LANG等变量设置为C或en等英文语系。所以使用正则表达式时,需要特别留意当时环境的语系是什么,否则可能会发现与别人不相同的选取结果。
  • grep与egrep在正则表达式里面是很常见的两个程序,其中,egrep支持更严谨的正则表达式的语法。
  • 由于编码系统的不同,不同的语系(LANG)会造成正则表达式选取数据的差异,因此可利用特殊符号如[:upper:]来替代编码范围较佳。
  • 由于严谨度的不同,正则表达式之上还有更严谨的扩展正则表达式。
  • 正则表达式的特殊字符与一般在命令行输入命令的通配符并不相同。
  • 基础正则表达式的特殊字符有:*.[][-][^]^$等。
  • 常见的支持正则表达式的工具软件有:grep、sed、vim等。
    • grep,抓取符合管道条件的行。
    • sed,可以替换、删除、新增、选取特定行。还可以直接修改整个文件。
    • vim,编辑文本。
  • printf可以通过一些特殊符号来将数据进行格式化输出,使得输出的内容格式变得好看。
  • awk可以使用【字段】为根据,进行数据的重新整理与输出。
  • 文件的比对中,可利用diff及cmp进行比对,其中diff主要用在纯文本文件方面的新旧版本比对。
  • patch命令可以将旧版数据更新到新版(主要亦由diff建立patch的补丁源文件)。
  • pr命令,文件打印相关设置。

# 特殊符号

特殊符号 代表意义
[: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:] 代表十六进制的数字类型,因此包括0~9、A~F、a~f的数字与字符。
最近更新时间: 2020/9/6 11:30:38