目录
一.sort命令(排序)
1.语法格式
2.常用选项
3.相关示例
3.1.
3.2.
二.unip命令(去重)
1.语法格式
2.常用选项
3.相关示例
3.1.
3.2.
三.tr命令(替换)
1.语法格式
2.常用选项
3.相关示例
3.1.
4.删除空行
方法1
方法2
补充:
1.Windows的另起一行格式(\r\n)转换成 Linux的另起一行格式(\n)
方法1
方法2
2.对数组排序
四.cut命令(裁剪)
1.语法格式
2.常用选项
3.字符串分片
3.1.
3.2.
3.3.
五.split命令(拆分)
1.语法格式
2.常用选项
3.拓展(面试题)
3.1.
3.2.
六.paste命令(合并)
1.语法格式
2.常用选项
3.补充(合并文件)
3.1.合并文件的行
3.2.合并文件的列
拓展:
eval命令(扫描)
相关示例
一.sort命令(排序)
- 以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序
- 比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出
1.语法格式
sort [选项] 参数XXX | sort 选项
2.常用选项
-n | 按照数字的大小进行排序 |
-r | 倒序排序(配合-n使用) |
-u | 相当于下面的那个命令uniq,去重复的行(只保留一行重复内容) |
-t | 指定字段的分隔符 |
-k | 指定排序的字段 |
-o<输出文件> | 另保存输出排序的结果(相当于重定向输出) |
-f | 忽略大小写,把小写字母也当作大写字母看待 |
-b | 忽略每行前面的空格 |
3.相关示例
3.1.
sort -n
[root@localhost day15]# vim 1.txt
[root@localhost day15]# sort -n 1.txt
33
45
65
155
353
545
888
9999
35653
65623
94545
3.2.
sort -n -r
二.unip命令(去重)
- 用于报告或者忽略文件中连续的重复行,常与 sort 命令结合使用
1.语法格式
uniq [选项] 参数XXX | uniq 选项
2.常用选项
-c | 进行计数,并删除文件中重复出现的行 |
-u | 显示仅出现一次的行(包括不连续的重复行) |
-d | 仅显示重复出现的行(必须是连续的重复行) |
3.相关示例
3.1.
uniq -c
3.2.
uniq -u
三.tr命令(替换)
- 常用来对来自标准输入的字符进行替换、压缩和删除
1.语法格式
XXX | tr 选项 '参数1' ['参数2']
2.常用选项
-c | 保留字符集1的字符,其他字符包括换行符\n用字符集2替换 |
-d | 删除所有属于字符集1的字符 |
-s | 将连续重复的字符串压缩成一个 |
-t | 字符集2 替换 字符集1,不加选项效果相同 |
3.相关示例
3.1.
tr -s
4.删除空行
方法1
cat 文件 | grep -v "^$"
方法2
cat 文件 | tr -s "\n"
补充:
1.Windows的另起一行格式(\r\n)转换成 Linux的另起一行格式(\n)
方法1
cat 文件 | tr -d '\r' > 新文件
方法2
yum install -y dos2unix
2.对数组排序
echo ${数组名[@]} | tr ' ' '\n' | sort -rn | tr '\n' ' '
四.cut命令(裁剪)
- 对字段进行截取和剪裁
1.语法格式
cut [选项] 参数cat file | cut [选项] 参数
2.常用选项
-d '分隔符' -f 字段序号 | 根据 -d 指定的分隔符的截取显示 -f 指定的字段 |
--complement | 取反,不显示 -f 指定的字段 |
--output-delimiter '分隔符' | 指定输出的字段分隔符 |
3.字符串分片
3.1.
echo ${变量:下标:长度} 下标起始从0开始
3.2.
echo $变量 | cut -b 起始下标-终止下标 下标起始从1开始
3.3.
expr substr $变量 起始下标 长度 下标起始从1开始
五.split命令(拆分)
- 用于在Linux下将大文件拆分为若干小文件
1.语法格式
split 选项 参数 原始文件 拆分后文件名前缀
2.常用选项
-l | 根据行数分割文件 |
-b | 根据大小分割文件 |
-d | 输出的目标文件后缀用数字替代 |
3.拓展(面试题)
3.1.
如何将一个10G文件分割为10个1G的文件
split -b 1G -d 原文件 目标文件名前缀
3.2.
如何将一个100行文件分割为10个10行的文件
split -l 10 -d 原文件 目标文件名前缀
六.paste命令(合并)
- 将多个文件按照列进行合并
1.语法格式
paste [选项] 文件1 文件2
2.常用选项
-d '分隔符' | 指定输出的字段分隔符 |
-s | 将每个列横向输出 |
3.补充(合并文件)
3.1.合并文件的行
cat 文件1 文件2 ... > 新文件
3.2.合并文件的列
paste -d '分隔符' 文件1 文件2 ... > 新文件
拓展:
eval命令(扫描)
- 在命令行执行前,先将命令行里的变量置换成对应的值后,再执行命令