目录
1.排序工具--sort命令
1.1 快读查找一个目录中最大文件
2.去重工具--uniq命令
2.1 分析判断远程登录错误次数,禁止该用户远程登录
3.修改工具--tr命令
4.列截取工具--cut命令
5.分割文件工具--split命令
6.合并文件列--paste命令
7.扫描工具--eval命令
8.总结
1.排序工具--sort命令
以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序
比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
语法格式
sort [选项] 参数
cat file | sort 选项
按首字母排序,首字母一样按第二个字母排序,以此类推
数字:按第一个字符排序,第一个字符一样再看第二个数字,依次类推
常用选项
-n数字升序排序;-r反序排序
-u去重
-t指定字段分隔符;
-k指定排序字段
-t ':' 以冒号为分割,-k 3 指定第三个字段进行排序,-nr 倒序排序
-o将排序后的结果转存至指定文件;效果等同于“>”
-f忽略大小写
1.1 快读查找一个目录中最大文件
使用du -a查找所有文件,再通过sort -nr进行倒序排序查看最大文件
2.去重工具--uniq命令
- 用于报告或者忽略文件中连续的重复行,常与sort 命令结合使用.
- 注意: 是连续的行。所以通常和sort结合使用,先排序使之变成连续的行, 再执行去重操作,否则不连续的重复行它不能去重。
语法格式
uniq [选项] 参数
cat file | uniq 选项
常用选项
如何删除重复行
-c统计指定文件中行数
-d仅显示有重复
-u查看内容没有重复
2.1 分析判断远程登录错误次数,禁止该用户远程登录
加入黑名单,防止登录
3.修改工具--tr命令
- 常用来对来自标准输入的字符进行替换、压缩和删除.
语法格式
tr [选项] [参数]
常用选项
-t 字符集1替换字符集2,不加选项-t结果也相同
-c保留字符集1的字符,其他字符用字符集2替换
案例:
保留ab,其余都替换为0,\n为换行也会替换为0
-d删除所有 参数1 的字符
-s根据 参数1 进行去重,如果有 参数2 则再用 参数2 的字符替换 参数1 的字符
补充:
1.如何遍历PATH中的所有目录?
2.如何将一个ip地址转化为一个字符串列表?
3.如何将windows文件格式转换为linux文件格式?
(1).windows的换行:由回车符\r和换行符\n组成;而linux的换行:由换行符\n组成.
(2).安装dos2unix工具,即可解决windows文件转化为linux文件
4.使用sort和tr命令,实现数组的排序;
删除空行的两种方法;
1.grep -v “^$”
2.tr -s "\n"
4.列截取工具--cut命令
显示行中的指定部分,删除文件中指定字段.
语法格式
cut 参数
cat file | cut选项
常用选项
注意:
--output-dellmiter指定输出的字段分割符
--complement取反作用
补充:
字符串分片的三种方法
1.echo ${变量:下标:长度} ;该方法下标起始从0开始
2.echo $变量 | cut -b 起始下标-终止下标 ;该方法下标起始从1开始
3.expr substr $变量 起始下标 长度 ;该方法下标起始从1开始
5.分割文件工具--split命令
split命令可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。
语法格式
split 选项 参数 原始文件 拆分后文件名前缀
常用选项
1.如何分割一个大文件根据行分割
split -l (指定分割行数) 源文件 目标文件名前缀
-d 输出的目标文件后缀用数字替代
2.如何将一个10G文件分割为10个1G的文件?
split -b 1G 源文件 目标文件名前缀
6.合并文件列--paste命令
将多个文件按照列进行合
语法格式
paste [-s][-d <间隔字符>] 文件...
常用选项
-d 指定分割符
-s将每一个字段横向输出
如何合并文件列?
1.paste 文件1 文件2
示例:
将b.txt与与a.txt文件第二列进行合并
如何合并文件行?
cat 文件1 文件2 > 新文件
7.扫描工具--eval命令
命令字前加上eval时,shell会在执行命令之前扫描它两次。eval命令将首先会先扫描命令行进行所有的置换,然后再执行该命令。该命令适用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。
示例1
示例2
示例3
示例4