用angularjs做的网站,wordpress注册无效,高端网站建设文案,湖南企业建站系统费用一、正则表达式命令
正则表达式#xff1a;匹配的是文本内容#xff0c;linux的文本三剑客都是针对文本内容。
grep 过滤文本内容
sed 针对文本内容进行增删改查
awk 按行取列
文本三剑客----都是按照行进行匹配。
1.1、grep筛选#xff1a;
grep的作用就是…一、正则表达式命令
正则表达式匹配的是文本内容linux的文本三剑客都是针对文本内容。
grep 过滤文本内容
sed 针对文本内容进行增删改查
awk 按行取列
文本三剑客----都是按照行进行匹配。
1.1、grep筛选
grep的作用就是使用正则表达式来匹配文本内容。
选项
-m 数字 匹配几次之后停止
[roottest1 opt]# grep -m 1 root /etc/passwd
root:x:0:0:root:/root:/bin/bash
[roottest1 opt]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin-v 取反
grep -v root /etc/passwd ##除了root筛选所有-n 显示匹配的内容及行号
[roottest1 opt]# grep -n root /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin-c 只统计匹配的行数
[roottest1 opt]# grep -c root /etc/passwd
2-o 仅显示匹配的结果
[roottest1 opt]# grep -o root /etc/passwd
root
root
root
root-q 静默模式。不输出任何信息。
[roottest1 opt]# grep -q root /etc/passwd /opt/123.txt
[roottest1 opt]# cat /opt/123.txt
[roottest1 opt]# grep -m 1 root /etc/passwd /opt/123.txt
[roottest1 opt]# cat /opt/123.txt
root:x:0:0:root:/root:/bin/bash-A after 数字后几行
grep -A 3 root /etc/passwd-B before 数字 前几行
grep -B 3 root /etc/passwd-C 数字前后各几行
grep -C 3 root /etc/passwd-e 或者 grep -e root -e xy102 /etc/passwd-E 匹配扩展正则表达式
-f 匹配两个文件相同的内容以第一个文件为准
[roottest1 opt]# vim kl1.txt
abc
acv
abf123
234
456
aaa
bbb
ccc
abc
acv
abf123
234
456
aaa
bbb
ccc
abc
acv
abf[roottest1 opt]# vim kl1.txt123
345
qqq
aaa
abf
avg
afh[roottest1 opt]# grep -f kl.txt kl1.txt
123
aaa
abf
-r 递归目录 目录下的文件内容软连接不包含在内。
[roottest1 opt]# grep -r 123 /opt/
/opt/test41.sh: echo 123 | passwd --stdin $user
/opt/test41.sh: echo 123 | passwd --stdin $user
匹配到二进制文件 /opt/.123.swp
-R 递归目录 目录下的文件内容软连接包含在内。
[roottest1 opt]# grep -R abf /opt/
/opt/nginx-1.22.0/src/core/ngx_crc32.c: 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
/opt/999.txt:abf1231.2、sort排序
sort
以行为单位对文件的内容进行排序
sort 选项 参数
-f忽略大小写相同字母默认大写排在前面
-b忽略每行之前的空格
-n按照数字大小进行排序此时不是按照单个字符进行比较而是行首所有连续的数字都能被识别按照识别到的数字的大小进行排序。且此时字母排序优先级高于数字
-r反向排序
-u去重相同内容仅显示一次
-o把排序后的结果转存到指定文件
-k指定字段字符进行排序
-t指定字段的分隔符
[roottest1 opt]# sort 123.txt111
112
123
222
333
555
aaa
aaa
aaa
bbb
bbb
cc
ddd
DDD
EEE
nnn
cat file | sort 选项
-f 忽略大小写默认会把大写字母排在前面
[roottest1 opt]# sort -f 123.txt111
112
123
222
333
555
aaa
aaa
aaa
bbb
bbb
cc
DDD
ddd
EEE
nnn-b 忽略每行之前的空格空格也显示不是把空格删除只是按照数字和字母的顺序排列
[roottest1 opt]# sort -b 123.txt 123
345
345345
567
987
aaa
bbb
bbb
BD
bfvf
SD
sdfd
sds-n 按照数字进行排序
[roottest1 opt]# sort -n 123.txt
aaa
bbb
bbb
BD
bfvf
SD
sdfd
sds123
345
345345
567
987-r 反向排序
[roottest1 opt]# sort -r 123.txt
sds
sdfd
SD
bfvf
BD
bbb
bbb
aaa
987
567345
345
345123
-u 相同的数据只显示一行
[roottest1 opt]# sort -u 123.txt123
345345
567
987
aaa
bbb
BD
bfvf
SD
sdfd
sds
-o 把排序后结果转存到指定的文件
[roottest1 opt]# sort -u 123.txt123
345345
567
987
aaa
bbb
BD
bfvf
SD
sdfd
sds
[roottest1 opt]# cat 123.txt | sort -rno 234.txt
[roottest1 opt]# cat 234.txt
987
567345
345
345123
sds
sdfd
SD
bfvf
BD
bbb
bbb
aaa1.3、uniq 去重
uniq 去除连续重复的行只显示一行
-c 统计连续行的次数合并连续重复的行
[roottest1 opt]# uniq -c 123.txt1 3451 5671 9871 1232 3451 bbb1 bfvf2 1 sdfd1 SD1 BD2 1 1 sds2 aaa1 bbb-u 显示仅出现一次的行包括不适合连续出现的重复行
[roottest1 opt]# uniq -u 123.txt345
567
987123
bbb
bfvf
sdfd
SD
BDsds
bbb
-d 仅显示连续重复的行不包括非连续出现的内容
[roottest1 opt]# uniq -d 123.txt ##显示重复的行
345 aaa1.4、tr压缩替换
tr用来对标准输出的字符进行替换压缩和删除。
-c 保留字符集1的字符其他的字符用字符集2替换
echo 字符集 |tr -c “字符集1” “字符集2”
[roottest1 ~]# echo abc
abc
[roottest1 ~]# echo abc | tr -c ab d
abdd-d 删除字符集中的一部分
echo abc |tr -d “a”
[roottest1 ~]# echo abc | tr -d a
bc-s 把字符集1的部分替换成字符集2的部分连续重复出现的字符压缩成一个字符
压缩
[roottest1 ~]# echo aaabaaca | tr -s a
abaca替换压缩
[roottest1 ~]# echo aaabaaca | tr -s a w
wbwcw1.5、cut
cut快速裁剪 awk都可以按行取列
对字段进行截取和裁剪。
-d 指定分隔符默认的分隔符是tab键
[roottest1 opt]# cut -d : -f 1-3 /etc/passwd
root:x:0
bin:x:1
daemon:x:2-f 对字段进行截取指定输出段的内容
[roottest1 opt]# cut -d : -f 1-3 /etc/passwd
root:0
bin:1
daemon:2-b 以字节为单位进行截取
-c 以字符为单位进行截取
–complement 输出的时候排除指定的字段
[roottest1 opt]# head -n 1 /etc/passwd | cut -d : --complement -f 1-3
0:root:/root:/bin/bash
[roottest1 opt]# head -n 1 /etc/passwd | cut -d : --complement -f 1
x:0:0:root:/root:/bin/bash–output-delimiter 更改输出内容的分隔符
[roottest1 opt]# head -n 1 /etc/passwd | cut -d : -f 1-3 --output-delimiter
rootx01.6、split文件的拆分
split大文件拆分若干个小文件。
-l 按行来进行分割
[roottest1 opt]# split -l 30 test1.txt xy102-b按照大小来分割
[roottest1 opt]# split -b 30m test1.txt xy102面试题
现在有一个日志文件很大5g。第一个能不能快速打开
拆分-l 按行 -b 大小
这种大文件推荐使用按大小。
这种小文件推荐使用按行。
1.7、文件合并
cat
paste
面试题
cat合并和paste合并之间的区别
cat是上下合并。
paste是左右合并。
cat 文本1 文本2 展示不改变
cat 文本1 文本2 文本3 合并以后传入文本3中
paste 文本1 文本2 展示不改变
paste 文本1 文本2 文本3 合并以后传入文本3中
面试题主机连接状态有几种
[roottest1 opt]# ss -antp | grep -v State | cut -d -f 1 | sort | uniq -c2 ESTAB15 LISTEN三、正则表达式
正则表达式由一类特殊字符以及文本字符所编写的一个模式模式又来匹配文件当中内容字符。
校验我们输入的内容是否满足。格式长度等等要求。
主要用来匹配文本内容命令的结果。
通配符只能用于匹配文件名和目录名。不能匹配文件二点内容和命令结果。
正则表达式
3.1、基本正则表达式
元字符字符匹配
. 匹配任意单个字符\ 转义符恢复字符的本意[] 匹配指定的范围内的任意单个字符或者数字区分大小写也可以用1-5a-t这样的方式范围匹配[^] 取反表示匹配除了^之后的内容^ 匹配以^之后内容开头的字符^# 匹配以#开头的行^$ 匹配空行[ ]中括号里输入空格就可以匹配空格注匹配内容两边需要加引号单引号双引号都可以. 任意单个字符也可以是一个汉字。
\ 转义符 恢复其本意。
ls | grep \.[] 匹配指定范围内的任意单个字符或者数字 [^]为取反
^为 以什么开头的行
^#:以#开头
^$:表示空行 表示次数匹配字符出现的字数
*匹配前面的字符任意次0次也可以。 .*匹配前面的字符至少有1次。匹配所有。 \匹配前面的字符没匹配到就是0次或者1次可有可无。 \ 匹配的前面字符至少出现一次1。 \ {n \ }匹配前面的字符n次可以小于n但是不能大于n而且前面的字符必须是连续出现 \ {mn \ }匹配前面的字符最少m次最多n次必须是连续出现超出的不在匹配范围。
\ {,n \ }匹配前面的字符最多n次必须是连续出现超出的不在匹配范围。不能少n次 \ {n, \ }匹配前面的字符最少n次 位置锚定 ^:以什么为开头行首锚定
$:以什么为结尾行尾锚定 “^root$”只包含root。 \ 或者\ b 词首锚定匹配单词的左侧连续的数字字母下划线都算单词内部
\ 或者 \ b 词尾锚定匹配单词的右侧 \b单词\b:匹配整个单词。空格隔开的也算整个单词。
^单词$:整行只有这一个单词。 区别
分组和逻辑关系
分组
或者 | 3.2、扩展正则表达式 grep -E “” egrep “” 987-123-4567 987 456-1230 (123) 456-7890 作业
1、显示/etc/passwd中以sh结尾的行;
[rootlocalhost opt]# cat /etc/passwd | egrep sh\b2、查找/etc/inittab中含有“以s开头并以d结尾的单词”模式的行
[rootlocalhost opt]# cat /etc/inittab | egrep \bs[a-z]d\b3、查找ifconfig命令结果中的1-255之间的整数
[rootlocalhost opt]# ifconfig | egrep -o \b[1-9]\b|\b[1][0-9][0-9]\b|\b[2][0-5][0-5]\b 4、在/etc/passwd中取出默认shell为bash的行
[rootlocalhost opt]# cat /etc/passwd | egrep \bbash\b5、高亮显示passwd文件中冒号及其两侧的字符
[rootlocalhost opt]# cat /etc/passwd | egrep .?[:].?