正则表达式

命令使用

tr

tr:用来对标准输出的字符进行替换,压缩和删除。

-c 保留字符集1的字符,其他的用字符集2进行替换

复制代码
[root@test2 opt]# echo adc | tr -c 'ad' 'a' 
adaa[root@test2 opt]# echo adc

-d 删除字符集中的一部分

复制代码
[root@test2 opt]# echo adc | tr -c 'ad' 'a' 
adaa[root@test2 opt]# echo adc

-s 把字符集1的部分替换成字符集2的部分,连续重复出现的字符串压缩成一个字符串

复制代码
[root@test2 opt]# echo aaabbdc
aaabbdc
[root@test2 opt]# echo aaabbdc | tr -s 'a'  
abbdc
复制代码
[root@test2 opt]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@test2 opt]# echo $PATH | tr -s ':' ';'
/usr/local/sbin;/usr/local/bin;/usr/sbin;/usr/bin;/root/bin

cut

cut 快速裁剪 awk都可以换行取列

cut作用:对字段进行截取和裁剪

-d 指定分隔符(默认的分隔符是tab键)

-f 对字段进行截取,指定输出几段内容

复制代码
[root@test2 opt]# head -n 1 /etc/passwd | cut -d ':' -f 1-3
root:x:0

-complement 输出的时候排除指定的字符段

复制代码
[root@test2 opt]# head -n 1 /etc/passwd | cut -d ':' --complement -f 7
root:x:0:0:root:/root

-output-delimiter 更改输出内容的分隔符

复制代码
[root@testl ~]# head -n l /etc/passwd cut -d ":"--complement -f 2root:0:0:root:/root:/bin/bash
[root@testl ~l# head -n l /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@test1 ~]# head -n 1 /etc/passwdl cut -d ":"--complement -f 2root:0:0:root:/root:/bin/bash
[root@testl ~]# head -n 1 /etc/passwd| cut -d":"--complement -f 
7root:x:0:0:root:/root
[root@testl ~]# head -n 1 /etc/passwd | cut -d":"--complement -f 16
/bin/bash
[root@testl ~]# head -n 1 /etc/passwdl cut -d":"--complement -f 1,3
x:0:root:/root:/bin/bash
[root@test1 ~]# head -n 1 /etc/passwdl cut -d':'-f 1-5 --output-delimiter=-'@root=x=日=Q0=Qroot
rootatest1 ~]# head -n,l /etc/passwd | cut -doutputdelimiter='@rootaxa0a0aroot

-b 以字节为单位进行截取

-c 以字符为单位进行截取

文件拆分

split 大文件拆分成若干个小的文件

-l 按行来进行分割

复制代码
[root@test2 opt]# cp /etc/passwd /opt/test3.txt
[root@test2 opt]# split -l 20 /opt/test3.txt xy102
[root@test2 opt]# ll
总用量 24
-rw-r--r--. 1 root root    0 6月  19 14:53 1
-rw-r--r--. 1 root root  409 6月  19 16:28 test1.sh
-rw-r--r--. 1 root root   61 6月  19 15:17 test2.sh
-rw-r--r--. 1 root root 2649 6月  20 09:36 test3.txt
-rw-r--r--. 1 root root  951 6月  20 09:38 xy102aa
-rw-r--r--. 1 root root 1153 6月  20 09:38 xy102ab
-rw-r--r--. 1 root root  545 6月  20 09:38 xy102ac
[root@test2 opt]# ls
1  test1.sh  test2.sh  test3.txt  xy102aa  xy102ab  xy102ac

-b 按照大小进行分割

面试题

现在有一个日志文件,很大,有5个G,第一个能不能快速的打开?

拆分:-l 按行拆分 -b 按大小拆分

这种文件推荐使用按大小拆分。

文件合并

cat

paste

面试题

cat合并和paste合并之间的区别是什么?

cat是上下合并

复制代码
[root@test2 opt]# cat test1.txt test2.txt 
 111
 222
 333
aaa
bbb
ccc

paste是左右合并

复制代码
[root@test2 opt]# paste test1.txt test2.txt 
 111    aaa
 222    bbb
 333    ccc

面试题

统计当前主机的连接状态

复制代码
[root@test2 opt]# ss -antp | grep -v '^State' | cut -d " " -f 1 | sort | uniq -c
      3 ESTAB
     17 LISTEN

正则表达式

由一类特殊字符以及文本字符所编写的一个模式,模式又来匹配文件当中的内容(字符)。

校验我们输入的内容是否满足规定,格式,长度等要求。

只要用来匹配文本内容,命令结果。

通配符:只能用于匹配文件名和目录名,不能匹配文件的内容和命令的结果

正则表达式两种

基本正则表达式

元字符(字符匹配)

. 任意单个字符,也可以是一个汉字

\ 转义符 恢复其本意

\] 匹配指定范围内的任意单个字符或者数字 ![](https://img-blog.csdnimg.cn/direct/ecc7fb1b100d423fa244facc91d01d3d.png) \[\^\] 取反 \^# 以# \^$ 表示空行 表示次数,匹配字符出现的次数 **\***匹配前面的字符任意此,0次也可以。贪婪模式尽可能的匹配。 .**\***匹配前面任意字符,至少要有一次 ![](https://img-blog.csdnimg.cn/direct/98278581b8304e6aa151b5eea1e59af4.png) \\? 匹配前面的字符0此或者1次,可有可无。 \\ +匹配前面字符,至少要出现一次\>=1 \\ {N\\}匹配前面的字符至少=n次,可以小于不能大于 \\{m\\n\\} 匹配前面至少m个最多n个(连续出现) \\{,n\\}匹配前面最多n个 ###### 位置锚定 \^:以什么开头 行首锚定 $:以什么结尾 行尾锚定 \\\<或者\\b 词首锚定 用于匹配单词的左侧 \\\>或者\\b 词尾锚定 用于匹配单词的右侧 ``` [root@test2 opt]# cat test1.txt | grep "\broot\b" root 匹配整个单词,一行内只能有他 [root@test2 opt]# cat test1.txt | grep -n "^root$" 6:root "\broot\b" 匹配整个单词空格隔开也算一个单词 "^root$"   整个一行只有这一个单词 ``` ``` [root@test2 opt]# cat -n test1.txt | grep "root"     4 rootroot     5 rootrootrootroot     6 root [root@test2 opt]# cat test1.txt | grep -n "^root$" 6:root ``` 分组和逻辑关系 分组 () ``` [root@test2 opt]# echo abcabc | grep "\(ab\)\{1\}" abcabc ``` 或者 \\ ``` [root@test2 opt]# echo 1abc2abc | grep "\(1\|2\)abc" 1abc2abc ​ ``` ##### 扩展正则表达式 **grep -E** **egrep** ? 匹配前面的字符0此或者1次,可有可无。 +匹配前面字符,至少要出现一次\>=1 {N}匹配前面的字符至少=n次,可以小于不能大于 {mn }匹配前面至少m个最多n个(连续出现) {,n}匹配前面最多n个

相关推荐
春生黎至10056 分钟前
GZ073网络系统管理赛项赛题第1套模块A:网络构建解题笔记
运维·网络
IT程序媛-桃子7 分钟前
【网安面经合集】42 道高频 Web 安全面试题全解析(附原理+防御+思路)
运维·网络·安全·面试
蒜白14 分钟前
27--当路由器学会“防狼术“:华为设备管理面安全深度解剖(完整战备版)
网络·安全·网络工程师·交换机
❀͜͡傀儡师25 分钟前
多台服务器上docker部署 Redis 集群
运维·服务器·redis
山楂树の27 分钟前
计算机网络 OSI参考模型
网络·计算机网络
JCBP_29 分钟前
数据结构4
运维·c语言·数据结构·vscode
AdrichPro37 分钟前
10、Linux C 网络编程(完整版)
linux·服务器·c语言·网络
IT 小旋风1 小时前
Linux centos 7 常用服务器搭建
linux·服务器·centos
sszdlbw1 小时前
文件包含漏洞的小点总结
服务器·安全·web安全·php
听风说雨的人儿1 小时前
HTTP 1.1长连接问题
网络·网络协议·http