linux常用的文件处理命令(sort,uniq,tr,cut,split,paste,eval)

161 阅读3分钟

sort

sort命令---以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序

比较原则是从首字符向后,依次按ASCII码进行比较,最后将他们按升序输出

语法格式

sort [选项] 参数

cat file | sort 选项

常用选项

-n :按照数字进行排序
-r:反向排序
-u:等于uniq,表示相同的数据仅显示一行
-t:指定字段分隔符,默认使用[Tab]键分隔
-k:指定排序字段
-o:<输出文件>:将排序后的结果转存至指定文件
-f:忽略大小写,会将小写字母都转换为大写字母来进行比较
-b:忽略每行前面的空格

sort -n

image.png

sort -rn

image.png

sort -u 相同的数据只显示一行

image.png

t 指定分隔符 -k 指定对第几个字段排序

image.png

将结果转存至指定文件

image.png

uniq

去除连续的重复

语法格式

uniq [选项] 参数
cat file | uniq 选项

常用选项

c:进行计数,并删除文件中重复出现的行
d:仅显示连续的重复行
u:仅显示出现一次的行
uniq -c

image.png

uniq -d

image.png

uniq -u

image.png

tr

常用来对来自标准输入的字符进行替换,压缩和删除

语法格式 tr [选项] [参数]

常用选项

-c: 保留字符集1的字符,其他字符(包括换行符\n)用字符集2替换
-d: 删除所有属于字符集1的字符
-s:将重复出现的字符串压缩为一个字符,用字符串2 替换  字符串1
-t: 字符集2 替换 字符集1, 不加选项同结果

tr -c image.png

tr -s

image.png

tr -d

image.png

tr -t

image.png

cut

cut命令---显示行中的指定部分,删除文件中指定字段

常用选项

-f:通过指定哪一个字段进行提取,cut命令使用”TAB“作为默认的字段分隔符

-d:”TAB“是默认的分隔符,使用此选项可以更改为其他分隔符

-b:截取字符串

--complement:此选项用于排除所指定的字段

--output-deliniter:更改输出内容的分隔符

1) -d 指定分隔符,-f 按字段进行截取 image.png

2)–output-delimiter,更改输出内容的分隔符。

image.png

3)–complement,排除所指定的字段。

image.png

截取字符串的常用方法

1.${i:起始下标值:截取长度}
2.echo $i | cut -c 1-3
3.expr substr $i 13

split

拆分文件 split命令用于在Linux下将大文件拆分为若干小文件。

常用选项

-l 以行数拆分
-b 一大小拆分

image.png

paste

合并文件的列

-d 把指定的间隔字符取代制表符
-s 把多行内容指定一行内容

image.png

eval

命令字前加上eval,shell会在执行命令之前扫描它两次,eval命令首先会先扫描命令行进行所有的置换,然后再执行命令,该命令适用于那些一次扫描无法实现功能的变量,该命令会对变量进行两次扫描。 image.png

image.png