正则与文件格式化处理

基础正则规则

[] 查找集合字符串[a-zA-Z0-9],反选[^0-9]
^$ 行首和行尾字符
. 任意一个字符
* 重复前一个字符0次以上(注意0次以上也包含0次.比如任意至少连续2个a字符串的正则aaa*,因为可以是0个,所以至少3个a)
{} 限制连续正则字符范围

正则与文件格式化处理_第1张图片
基础用法展示1
基础用法展示2

sed 字符串的替换,删除,新增,选取(常用)

sed [-nefr] 动作
-i 直接修改文件内容,而不输出到屏幕

动作说明 [n1,[n2]] function
n1,n2可选.a 新增,d 删除 ,i 插入,p 打印,s 替换

这个是很常用的在一行中进行截取操作的命令(sed 's/正则匹配内容/被替换内容/g')
举例:cat man.conf | grep MAN | sed 's/^#.*//g' | sed '/^$/d’


拓展正则表达式(常用)

正则与文件格式化处理_第2张图片
拓展用法展示

若要使用拓展功能,可以通过grep -E或egrep开启

较多使用的是”(aa|bb)”找出群组字符串和”a|b”找出数个字符串这个功能

文件格式相关命令

printf 格式化打印(配合awk常用)
模式:printf “name:%10s \t age:%5i.”,1,3.

用于一般格式化与输出

awk 数据处理工具(很重要,使用非常多)

模式:awk ‘条件指令1 {动作1} 条件指令2 {动作2}...’
awk是以行为单位,以字段为最小的处理单位

内置变量.0一整行,1,$2…分段的数据.NR:目前第几行,FS:目前的分隔符,默认是空格键,一般要配合BEGIN条件指令设置
在awk中需要多个辅助命令时需要使用;或[Enter]回车来隔开每个命令

举个例子:cat /etc/passwd | awk 'BEGIN {FS=":"} 1==1{printf "1=%10s\t2=%10s\n",1,2}’
注意看这个例子的整体格式awk ‘con1 {exp1} con2 {exp2}’(awk支持基本的逻辑运算字符,有>,<,>=,<=,==,!=这六种)

正则与文件格式化处理_第3张图片
内置变量

文件比较工具

diff 以行为单位的文件比较

用起来还是挺不错的,感觉和git的那个版本管理比较有点像

举例:diff file.old file

patch 用于区分两个文件的区别以及更新或还原

1将变化信息打到文件

diff -Naur password.old password.new > password.patch

2可以进行更新/还原

更新:patch -p0 < password.patch
还原:patch -R -p0 < password.patch
用这俩命令就更像git的版本管理了

你可能感兴趣的:(正则与文件格式化处理)