sort主要针对文件内容的操作,对文件内容进行匹配或者过滤,排序
grep 过滤 针对文本内容进行过滤,也就是查找
-i:忽略大小写默认的,可以不加
-n:显示匹配的行号
-c:只统计匹配的行数 (用的少)
-v:取反,把不包含查找的内容查找出来
grep的主要作用就是过滤文本内容,是针对行来进行处理
-m:多个匹配,可用限定显示的行数,匹配几次后停止
例:
-o:仅显示匹配到的字符串
-A:匹配到内容行后再向下展示几行,包含匹配到的行
grep -A 2 "root" /etc/passwd
-B:匹配到的内容行再向上展示几行
-C(大写): 匹配到的内容行展示上下个几行
-e:逻辑或,可用匹配多个条件
例:grep -e root -e dn -e bash /etc/passwd
实现多个选项间的逻辑关系,可以跟多个条件
-w:匹配整个单词
-E:使用扩展正则表达式 也可以用egrep
-f:根据两个文件的内容进行匹配,匹配两个文件中相同的内容
例:grep -f 123.txt 456.txt
-r:递归目录,不处理软连接 grep -r "a" /opt/
-R:递归目录,处理软连接,软连接的内容也显示出来
例:查找开头不含“#”的行 grep -v "^#" test.sh
sort:以行为单位对文件的内容进行排序,也可以根据不同的数据类型进行排序
两种写法:sort 选项 参数
cat 文件名 | sort 选项
常用的选项:
-f:忽略大小写,默认会把大写的字母排在前面
-b:忽略每行前面的空格
-n:按照数字进行排序,按行号
-r:反向排序
-u:相同的数据只显示一行,去重
-o:输出的文件名,将排序后的结果转存到指定的文件
数字的优先级最高
字母和数字不要混合在一起排序
字母和数字不要混合在一块排序
例:要求按照原文本的顺序,输入到ky30.txt
cat -n /etc/passwd | sort -n -o ky30.txt
比sort更强大的去重的命令:uniq 用于报告或忽略文件中连续出现的重复行,经常和sort命令结合使用
两种命令格式:uniq 格式 参数
cat 文件名 | uniq 选项
uniq -c:统计连续重复的行的次数,并且合并重复的行并打印,不会改变文件内容
-u:显示仅出现一次的行,包括不连续的重复行
-d:仅显示重复出现的行,必须是连续的重复行
sort经常和uniq一起使用 例:sort -n test.sh | uniq -c
先排序再输出,只对打印的结果有影响,对文件没影响
tr:对来自标准输入的字符进行替换,压缩及删除
格式:tr 选项 参数 也可以结合"|"进行使用
常用选项:-c:保留字符集1的字符,用字符集2来替换
例:echo 192.168.88.10 | tr "." " " 把 . 换成空格
例2:echo ABC | tr "A-Z" "a-z" 匹配前面的内容把大写换成小写
用引号引起来的都是正则表达式
例:echo abc | tr -c "ab" "t" 保留ab,替换c变成t
-d:删除指定的字符集
-s:把重复出现的字符串压缩成一个字符串,也可以替换
-t:默认就是替换,可以不写
tr主要的作用是把不想要的部分删除掉
cut:截取,和awk有相似之处,对字段进行截取和裁剪
格式:cut 选项 参数
cat 文件名 | cut 选项
常用选项:-d:指定分割符,默认的分隔符是tab,不是空格,指定分隔符要用引号引起来
awk的默认分隔符是空格,多个空格也会算一个
例:cut -d ":" -f 1-3 /etc/passwd
1-3为1到3 1,3为1和3
-f:按字段进行截取,指定要截取第几个字段,指定输出列
面试题:
split:文件拆分,把大文件拆分成若干小文件
-l:根据行数来拆分
面试点
例:split -l 20 passwd ky30
ky30为切割后的文件名,必须指定,否则会报错
一般来说都会指定一个名称,方便识别
-b:指定文件大小拆分
例:split -b 文件名 切割的文件名
面试题:paste和cat之间的区别
答:paste是左右合并,cat是上下合并,但只是临时生效
paste:文件合并
paste 123 456
永久生效:paste 123 456 > test.txt
面试题:笔试部分
统计当前主机的连接状态
listen:监听,等待连接,谁可以连接
estab:已经建立连接,并且连接处于活动状态
ss -nt | tr "s" | cut -d " " -f 3 | sort -n | uniq -c