目录
排序sort命令
语法格式:
常用选项:
去重uniq命令
替换tr命令
替换字符
删除编辑
压缩编辑
压缩替换编辑
删除空行
截取cut命令
拆分split命令
合并paste命令
eval命令
排序sort命令
以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
语法格式:
sort [选项] 参数
cat file l sort 选项
常用选项:
-n:按照数字进行排序
-r:反向排序
-u:等同于uniq,表示相同的数据仅显示一行
-t:指定宁段分隔符,默认使用[Tab]键分l隔
-k:指定排序字段
-o <输出文件>:将排序后的结果转存至指定文件
-f:忽略大小写,会将小写字母都转换为大写字母来进行比较
-b:忽略每行前面的空格
sort -n as3.sh
sort -t ':' -k 3 -n as4.sh
sort -t ':' -k 3 -n as4.sh
去重uniq命令
用于报告或忽略文件中连续的重复行,常与sort命令结合使用
语法格式:
uniq [选项] 参数
cat file | uniq 选项
常用选项
-c:进行计数,并删除文件中重复的字符进行替换、压缩和删除
-d:仅显示连续的重复行
-u:仅显示出现一次的行
示例
uniq -c
uniq -d
uniq -u
示例
把文件内容中重复三次的内容输出出来
替换tr命令
常用来对来自标准输入的字符进行替换、压缩和删除
语法格式
tr [选项] [参数]
常用选项:
-c:保留字符集1的字符,其他的字符(包括换行符\n)用字符集2替换
-d:删除所有属于字符集1的字符
-s:将重复出现的字符串压缩为一个字符:用字符集2替换字符集1
-t:字符集2替换字符集1,不加选项同结果。
参数:
字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数"字符集2"指定转换的目标字符集。但执行删除操作时,不需要参数"字符集2":
字符集2:指定要转换成的目标字符集。
示例
替换字符
删除
压缩
压缩替换
删除空行
方法一
方法二
快速给数组排序
截取cut命令
显示行中的指定部分,删除文件中指定字段
语法格式:
cut 参数
cat file cut 选项
常用选项:
-f :通过指定哪一个字段进行提取。cut命令使用"TAB"作为默认的字段分隔符。-d : “TAB”是默认的分隔符,使用此选项可以更改为其他的分隔符。
--complement :此选项用于排除所指定的宁段。
--output-delimiter :更改输出内容的分隔符。
echo $(i:0:3) #起始位置从0开始
expr substr $i 1 3 #其实位置从1开始
以.分隔的第四个字段
以.分隔的开始字段和结束字段指定字段的范围
以.分隔的二个字段和第四个字段
排除第二、四个字段
输出分隔符使用空格分隔
拆分split命令
linux下将一个大的文件拆分成若干小文件
语法格式:
split 选项 参数 原始文件 拆分后文件名前缀
常用选项:
-l:以行数拆分
-b:以大小拆分
split -l 50 /etc/passwd passwd #以50行对文件进行拆分,最后一个文件的行数没有50行以实际行数进行分配
示例
合并paste命令
paste -d
paste -s
eval命令
命令字前加上eval时,shell会在执行命令之前扫描它两次。eval命令将首先会先扫描命令行进行所有的置换,然后再执行该命令。该命令适用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描
示例1
示例2
示例3