sort命令
sort命令——以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序
比较原则是从首字符向后,依次按ASCII码进行比较,最后将他们按升序输出。
默认首字母排序
语法格式:
sort [选项] 参数
cat file |sort 选项
常用选项:
-n:按照数字进行排序
-r:反向排序
-u:等同于uniq,表示相同的数据仅显示一行
-t:指定字段分隔符,默认使用[Tab]键分隔
-k:指定排序字段
-o <输出文件>:将排序后的结果转存至指定文件
-f:忽略大小写,会将小写字母转换为大写字母来比较
-b:忽略每行前面的空格
示例:
文件1.txt内容
1、默认排序,即不加选项,默认按首字母排序
2、-n ,按照数字排序,默认排序为升序
3、-r ,倒序。默认为升序,后面再加上-r后,排序是降序
4、-u,合并重复的行,只显示一次重复的行,不会多次显示
tip:-u -n -r合起来与分开的作用是一样的
5、 -t,指定分隔符。-k,指定对第几个字段进行排序
uniq命令
uniq命令——用于报告或者忽略文件中连续的重复行,常与sort连用
去重
语法格式:
uniq [选项] 参数
cat file |uniq 选项
常用选项:
-c:进行计数,并删除文件中重复出现的行
-d:仅显示连续的重复行
-u:仅显示出现一次的行
示例
1、uniq不加任何选项,作用只有对连续且重复的进行去重
2、-c,显示连续重复行出现的次数,并合并重复行
3、-c,与sort命令结合,统计相同行重复出现的次数,包括不连续的重复行
4、-u,显示仅出现过一次的行(但包括不连续的重复行)
tr命令
tr命令——常用来对来自标准输入的字符进行替换、压缩和删除
语法格式:
tr [选项] [参数]
常用选项:
-c:保留字符集1的字符,其他的字符(包括换行符\n)用字符集2替换
-d:删除所有属于字符集1 的字符 删除字符集1中指定的字符,换行符也可以删除(\n)
-s:将重复出现的字符串压缩为一个字符;用字符集2 替换 字符集1
-t:字符集2 替换字符集1,不加选项同结果
示例
1、将所有小写字母替换为大写
2、将小写a替换为大写A
3、 将小写a替换为大写A
4、将.替换为空格
5、将abc替换成123
6、 替换的参数比原参数多出的字符忽略
7、原参数如果比替换参数多出字符,则用替换参数的最后一个字符替换
cut命令
cut命令——截取字段或字符串,用于显示行中的指定部分,删除文件中指定字段
语法格式
cut [选项] 文件名
常用选项:
-d:分隔符,按照指定分隔符分割列。与 -f 一起使用
-f:依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思(列号,提取第几列)
-c:以字符 (characters) 的单位取出固定字符区间
-b:以字节为单位进行分割
split命令
split命令——Linux下将下一个大的文件拆分成若干个小文件
语法格式:
split 选项 参数 原始文件 拆分后文件名前缀
常用选项:
-l:以行数拆分
-b:以大小拆分
split -l 50 /etc/passwd passwd #以50行对文件进行拆分,最后一个文件的行数没有50行以实际行数进行分配
paste命令
paste命令——用于合并的文件列
paste [-s] [-d <间隔字符>] 文件
语法格式:
paste [选项]
常用选项:
-d<间隔字符>:用指定的间隔字符取代制表符
-s:把多行内容合并为一行进行显示
eval命令
eval命令——命令字钱加上eval时,shell会在执行命令之前扫描它两次。eval命令将首先会先扫描命令行进行所有的置换,然后在执行命令。该命令适用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。
示例1:
echo "hello world" > file
myfile="cat file"
echo $myfile
cval $myfile