目录
一:sort--排列工具
1.sort命令介绍
2.sort命令常用选项
3.sort命令事例
二: uniq--去重工具
1.uniq命令介绍
2.uniq命令常用选项
3.uniq命令事例
4.筛选出重复3次的ip
5.将超过3次登录失败的用户加入黑名单
三:tr-- 替换工具
1.tr命令介绍
2.tr命令常用选项
3.tr命令事例
(1)替换字符
(2)替换成特殊字符
(3)对字符去重
(4)删除字符
四:cut--截取工具
1.cut命令介绍
2.cut命令常用选项
3.cut命令事例
五:split--拆分工具
1.split命令介绍
2.split命令常用选项
3.split命令事例
六:patse-合并工具
1.patse命令
2.patse命令事例
七:eval--扫描工具
1.eval命令介绍
2.eval命令事例
(1)事例1
(2)事例2
(3)事例3
一:sort--排列工具
1.sort命令介绍
以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序。比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
格式:
sort [选项] 参数
cat 文件名 | sort 选项
2.sort命令常用选项
-n | 按照数字进行排序 |
-r | 反向排序 |
-u | 等同于uniq,表示相同的数据仅显示一行 |
-t | 指定字段分隔符,默认使用【Tab】键分割 |
-k | 指定排序字段 |
-o <输出文件> | 将排序后的结果转存至指定文件 |
-f | 忽略大小写,会将小写字母都转换为大写字母来进行比较 |
-b | 忽略每行前面的空格 |
3.sort命令事例
二: uniq--去重工具
1.uniq命令介绍
用于报告或者忽略文件内连续的重复行,常与sort命令结合使用
格式:
uniq [选项] 参数
cat file | uniq 选项
2.uniq命令常用选项
-c | 进行计数,并删除文件中重复出现的行 |
-d | 仅显示连续的重复行 |
-u | 仅显示出现一次的行 |
3.uniq命令事例
4.筛选出重复3次的ip
[root@localhost ~]# vim a1.sh
#!/bin/bash
#将test内容以'.'分割的第4部分排序,并删除重复的内容输出到指定文件
cat test | sort -n -t '.' -k4 | uniq -c > ./iplist.txt
IFSB=$IFS #对IFS进行备份
IFS=$'\n' #重新赋值,允许识别换行符
for i in $(cat ./iplist.txt)
do
num=$(echo $i | awk '{print $1}') #定义文件内容的第1部分为新变量
if [ $num -eq 3 ];then #如果变量等于3
echo $i | awk '{print $2}' #输出变量内容的第2部分
fi
done
IFS=$IFSB #将IFS复原
5.将超过3次登录失败的用户加入黑名单
[root@localhost ~]# vim heimd.sh
#!/bin/bash
#将查出来的信息删除重复的,保存到指定文件
cat /var/log/secure | grep 'Failed password' | awk '{print $11}' | uniq -c > ./hei.txt
IFSB=$IFS
IFS=$'\n'
for i in $(cat hei.txt)
do
num=$(echo $i | awk '{print $1}') #将查找出来的第一位赋值一个变量
if [ $num -gt 3 ];then #如果变量大于3
IP=$(echo $i | awk '{print $2}') #将第二位赋值一个变量
echo "sshd:$IP" >> /etc/hosts.deny #输出指定信息到黑名单
fi
done
IFS=$IFSB
三:tr-- 替换工具
1.tr命令介绍
用来对来自标准输入的字符进行替换、压缩、和删除
格式: tr [选项] [参数]
2.tr命令常用选项
-c | 保留字符集1的字符,其他字符(包括换行符\n)用字符集2替换 |
-d | 删除所有属于字符集1的字符 |
-s | 将重复出现的字符串压缩为一个字符;用字符集2 替换 字符集1 |
-t | 字符集2 替换 字符集1,不加选项同结果 |
3.tr命令事例
(1)替换字符
(2)替换成特殊字符
(3)对字符去重
(4)删除字符
四:cut--截取工具
1.cut命令介绍
显示行中的指定部分,删除文件中的指定字段
格式:
cut 参数
cut 文件 | cut 选项
2.cut命令常用选项
-f | 通过指定哪一个字段进行提取。cut命令使用“TAB”作为默认的字段分隔符 |
-d | “TAB”是默认的分隔符,使用次选项可以更改为其他的分隔符 |
--complement | 此选项用于排除所指定的字段 |
--output-delimiter | 更改输出内容的分隔符 |
3.cut命令事例
五:split--拆分工具
1.split命令介绍
将一个大的文件分成若干小文件
格式:split 选项 参数 原始文件 拆分后文件名前缀
2.split命令常用选项
-l | 以行数拆分 |
-b | 以大小拆分 |
3.split命令事例
六:patse-合并工具
1.patse命令
将不同的文件以列进行合并
格式:
paste -d ':' 文件名 文件名:以冒号为分割符,合并文件
paste -s 文件名 文件名 :按行合并文件
2.patse命令事例
七:eval--扫描工具
1.eval命令介绍
命令字前加上eval时,shell会在执行命令前扫描它两次。eval命令将首先会先扫描命令行进行所有的置换,然后再执行该命令。改命令使用于哪些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。
2.eval命令事例
(1)事例1
(2)事例2
(3)事例3