sort命令
以行位单位对文件内容进行排序,也可以根据不同的数据类型来排序
语法格式
sort [选项] 参数
cat file | sort 选项
常用选项
| 常用选项 | 作用 |
|---|---|
| -n | 按照数字进行排序(默认升序) |
| -r | 反向排序(倒序) |
| -u | 等同于uniq,表示相同的数据仅显示一行 |
| -t | 指定字段分隔符,默认使用Tab键分隔 |
| -k | 指定排序字段(不指定则默认第一个字段) |
| -f | 忽略大小写,会将小写字母都转换为大写字母来进行比较 |
| -b | 忽略每行前面的空格 |
| -o <输出文件> | 将排序后的结果转存到指定文件中 |
实列操作
对数字进行排序,按照第一列数字顺序进行排序
对字母进行排序:默认是按照首字母进行排序,且小写字母放前面,大写字母放后面
-r,倒序 默认是升序排列,加-r后是降序排列。
-u,合并重复行,相同数据只显示一行
-t,指定分隔符 -k,指定对第几个字段进行排序
-o <输出文件>,将排序后的结果转存到指定文件中
uniq命令
用于报告或者忽略文件中连续的重复行,常与sort命令结合使用
语法结构
uniq [选项] 参数
cat file | uniq 选项
常用选项:
| 常用选项 | 作用 |
|---|---|
| -c | 统计连续重复的行的次数,并且合并重复的行 |
| -u | 仅显示出现一次的行(包括不连续的重复行) |
| -d | 仅显示重复出现的行(必须是连续的重复行) |
示例
uniq不加选项,只会对连续的重复行进行去重
uniq -c,显示连续重复行出现的次数,并合并重复行
uniq -c,与sort命令结合,统计相同行重复出现的次数,包括不连续的重复行
uniq -u,显示仅出现过一次的行(但包括不连续的重复行)
uniq -d,仅显示重复出现的行(必须是连续的重复行)
tr命令
常用来对来自标准输入的字符进行替换、压缩和删除
语法格式
tr [选项] 参数1 参数2
常用选项
| 常用选项 | 作用 |
|---|---|
| -c | 保留字符集1的字符,其他字符包括换行符\n用字符集2替换 |
| -d | 删除所有属于字符集1的字符 |
| -s | 将重复出现的字符串压缩为一个字符;用字符集2 替换字符集1 |
| -t | 字符集2 替换 字符集1 不加选项效果相同 |
示例
替换字符
tr -c 保留字符集1的字符,其他字符包括换行符\n用字符集2替换
tr -d 删除所有属于字符集1的字符
tr -s 将重复出现的字符串压缩为一个字符;用字符集2 替换字符集1
过滤文件中的非空格
cat 3.txt | tr -s "\n" ##将连续的换行符压缩成一个
cat 3.txt | grep -v "^$" ##过滤出非空行
分行输出环境变量PATH中所有的目录
使用tr对数组进行排序
解决从Windows传来文件的空格问题
方法一:
[root@weq ~]# cat -v tr.txt
111^M
^M
^M
^M
222[root@weq ~]# cat tr.txt | tr -s "\r" "\n" > newtr1.txt
[root@weq ~]# cat -v newtr1.txt
111
222
方法二:
yum install -y dos2unix
dos2unix +文件名,进行直接转换格式
cut命令——截取字段或者字符段
显示行中的指定部分,删除文件中指定字段
命令格式
cut [选项] 参数
cat file | cut 选项 参数
常用选项:
| 选项 | 作用 |
|---|---|
| -d | 指定分隔符(默认分隔符为Tab) |
| -f n | 按字段进行截取。指定第n个字段;1-3表示从第1个字段到第3个字段;1,4,7表示第1、第4、第7个字段 |
| -b | 以字节为单位进行截取 |
| -c | 以字符为单位进行截取 |
| --complement | 排除所指定的字段 |
| --output-delimiter | 更改输出内容的分隔符 |
示例
-d 指定分隔符,-f 按字段进行截取
-f,连续的字段使用"-"连接,不连续的字段之间使用逗号
–complement,排除所指定的字段
–output-delimiter,更改输出内容的分隔符
三种截取命令
echo ${变量名:下表位置:长度} 下标从0开始
echo XXXXXX | cut -b M=N M代表下标起始位置,N代表下标终止位置,下标从1开始
expr substr XXXXX 下标位置 长度 下标从1开始
split命令——拆分文件
linux下将一个大的文件拆分成若干小文件
命令格式
split 选项 参数 原始文件 拆分文件名的前缀
常见选项
| 选项 | 作用 |
|---|---|
| -l | 以行数拆分 |
| -b | 以大小拆分 |
paste命令
用于合并文件的列
命令格式
paste [-s] [-d <间隔字符>] 文件
常用选项
-d<间隔字符> 指定合并后两列之间的分隔符
-s 将列的内容转为行内容进行合并
eval命令——扫描命令2次
命令字前加上eval,shell会在执行命令之前扫描它两次,eval命令首先会先扫描命令行进行所有的置换,然后再执行命令,该命令适用于那些一次扫描无法实现功能的变量,该命令会对变量进行两次扫描