linux常用命令_正则表达式

正则表达式:

[:alnum:]:

代表所有英文字母和数字

[:alpha:]

代表所有英文字母

[:blank:]

表示空格和tab按键

[:cntrl:]

代表键盘上的控制按键

[:digit:]

代表所有的数字

[:graph:]

除了空格和tab外其他所有按键

[:lower:]

代表所有小写字母

[:print:]

代表任何可以被打印出来的字符

[:punct:]

代表所有标点符号

[:upper:]

代表所有大写字母

[:space:]

代表所有可能的空白的字符,所有空格键,tab,CR等

[:xdigit:]

代表所有16进位的数字类型,0-9,A-F,a-f

###########################################################################

利用中括号在括号的区间内选择查询字符

grep -n 'th[ea]' text.txt

[^]字集反向选择

^[]表示在文字行首

.&在查询语句的末尾

a-z 查询a-z的字段

[[:digit:]]代表数字查询

############################################################################

通配符

o*

表示0个o或多个o

go*g

可以匹配

gg,gog,goog,gooog

############################################################################

g..g

表示匹配两个.为随机文字

例如goog,gddg,gdeg

######################################################################

g.*g

表示匹配任何符合随机满足g随机任意字符g的文字匹配

#########################################################################

n\{2,5\}

表示n的重复次数为2和5之间文字匹配

#####################################################################

##############################################################################

sed

动作模式

-n: 使用安静模式,在一般sed的用法中,所有stdin的数据都会被输出到屏幕上,加上参数可以值让涉及到的查询结果显示,否则会显示两遍

-e: 直接在指令上进行sed的动作编辑(默认)

-f: 将动作写入一个文件内, 可以使用 -f filename执行sed动作

-r: sed 的动作支持是延伸型正则表达式的语法(默认是常规正则表达式)

-i: 直接修改内容,而不是输出结果(危险操作)

n1,n2,function

在n1和n2之间进行动作行为

动作行为参数

a: 新增,在当前的下一行插入字符串

c: 取代,c的后面可以接字符串,来取代范围内的内容

d: 删除,将范围的内容删除

i: 插入,插入指定行的上一行

p: 将范围内的内容输出到屏幕上

s: 可以用正则表达式对范围内的内容进行查询, 1,30s/oldcontent/newcontent/g

#################################################################

延伸正规表达式

+

一个或一个以上的重复字符

如go+d会匹配

god,good

?

零个或一个的字符

如go?d会匹配

gd,god

|

在给出的条件内查询匹配字符

gd|good

会匹配查询含有两个其中之一关键字的语句

(|)+

范围群组

a(god|good)b

会匹配agodb或者agoodb包含的语句

()+

会包含多个重复就语句的群组

###################################################################

printf

会以区块为边界打印内容,显示格式

\a 发出警告声音

\b 退格键

\f 清除屏幕

\n 换行

\r Enter按键

\t 水平的Tab按键

\v 垂直的tab按键

\xNN NN为两位数的数字,可以转换成字符

%ns n是数字,表示多少字符

%ni n是数字,i表示整数字符

%N.nf n和N都是数字,f表示浮点数,N为总数,n为小数点后的数量,则整数位为N-1-n,小数点占一位

##########################################################################

awk 类似于sed的一种文件数据操作工作

以设定标记位为边界区分每个数据块编号默认为空格

NR表示当前第几行

NF表示当前一共有多少区块

FS表示当前的分隔符

一般格式如下

stdin | awk 'BEGIN{FS=":"} NR > 4 || NF > 3{print $1 $3}'

表示的意思为将输入以":"进行切割,当给定的数据是第4行或者当前分区块数量大于3时,将打印第1区块和第3区块

以/etc/passwd为例子

cat /etc/passwd | awk 'BEGIN{FS=":"}{sum= $3+$4 

print "sum=""sum}'

必须进行换行打印,否则会提示语法错误

会将passwd的第3列和第4列的数据加后输出,仅是测试没有意义

###################################################################################

diff

对文件不同进行比较

-b

忽略一行中的空表

-B

忽略空白行

-i:

忽略大小写的不同

##########################################################################

cmp

将文件中的不同字节列举出来

-l

将所有的字节列出来,默认指显示第一个不同点

#########################################################################

patch

将文件的不同以补丁形式保存

diff -naur file.old file.new > update.pacth

在借由patch工具升级

-R

还原

##############################################################################

pr

将文件的标题页码时间连同内容一起显示出来

############################################

猜你喜欢

转载自blog.csdn.net/qq_22478401/article/details/81386571