Skip to content

Latest commit

 

History

History
121 lines (92 loc) · 2.81 KB

正则表达式与文本格式化处理.md

File metadata and controls

121 lines (92 loc) · 2.81 KB

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

###基础正则表达式

特殊符号 代表意义
[:alnum:] 代表英文大小写字符及数字,即0-9,A-Z,a-z
[:alpha:] 代表任何英文大小写字符,即A-Z,a-z
[:blank:] 代表空格键与tab键两者
[:cntrl:] 代表键盘的控制按键
[:digit:] 代表数字,即0-9
[:graph:] 除了空格符与tab键外的其它所有按键
[:lower:] 代表小写字符,即a-z
[:print:] 代表任何可以被打印出来的字符
[:punct:] 代表标点符号,即"'?!;:#$...
[:upper:] 代表大写字符,即A-Z
[:space:] 任何会产生空白的字符,包括空格键,tab,CR等
[:xdigit:] 代表16进制数,即0-9,A-F,a-f

####grep的进阶选项

grep [-A] [-B] [--color=auto] '搜寻字符串' filename

-A:after,后接数字,除了列出该列外,后续的n列也列出来
-B:befer,后接数字,除了列出该列外,前面的n列也列出来
--color=auto:可将正确的那个截取数据列出颜色

####基础正则表达式特殊字符

特殊字符 意义
^word 待搜寻的字符串在行首
word$ 待搜寻的字符串在行尾
. 匹配任意字符
|转义字符
* 重复0到无穷多个
[] 字符范围内的字符(只代表一个)
n1-n2 n1到n2范围内的字符
^ 不要的字符
{m,n} n到m个字符

####sed工具

sed [-nefr] [动作]

-n:使用silent模式。在一般sed的用法中,所有来自stdin的数据一般都会被列出到屏幕上。加上后,只有经过sed特殊处理的那一行才会被列出来
-e:直接在命令行模式上进行sed的动作编辑
-f:后接filename,一个档案内的sed动作
-r:sed动作支持的扩展正则表达式语法
-i:直接修改档案内容,而不是屏幕输出

动作说明:[n1[,n2]]function
n1,n2:代表选择进行动作的列数
function:
  a:新增,后接字符串
  c:取代,后接字符串
  d:删除
  i:插入,后接字符串
  p:打印
  s:取代,后接正则

###扩展正则表达式

特殊字符 意义
+ 重复一个或一个以上
? 零个或一个
|
() 群组

###文件格式化与相关处理

####格式化打印:printf

printf '打印格式' 实际内容

####数据处理工具:awk

awk '条件类型1 {动作1} 条件类型2 {动作2} ...' filename

####档案对比工具

diff

diff [-bBi] from to

from:原始比对档案
to:目的比对档案
-b:忽略空白字符的差异
-B:忽略空白行的差异
-i:忽略大小写

cmp

cmp [-s] file1 file2

-s:将所有不同字符全部列出来,默认只会输出第一个

patch

patch -pN < file       //更新
patch -R -pN < file    //还原

-p:后接数字,取消几层目录的意思
-R:代表还原

####档案打印准备:pr