#正则表达式与文本格式化处理
###基础正则表达式
特殊符号 | 代表意义 |
---|---|
[: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