shell学习文件操作之sort,cut,uniq

linux系统使用过程中,我们经常需要对文件进行一些操作分析,例如对文本进行分类排序,去重,截取一些规则化字段。cut,sort,uniq很方便使用。

1.sort:一般有三种模式,分别为排序文本,检查文件,合并文件。

常用方法及参数
sort [option] [file]
  -b,#忽略前空格或者制表符
  -d, #根据字典顺序排序,仅比较数字,字母和空字符
  -f, #忽略大小写
  -i, #仅仅比较可打印文件
  -n, #根据算术值比较,空格,十进制数字等。
  -R, #根据哈希值随机排序
  -r, #颠倒排序结果
  -u,#删除重复的行,只保留一个文件
[[email protected] home]# cat text
1
1
2
2
3
4
3
33
5
1
44
11
5
6
7
8
A
9
11
10
11
[[email protected] home]# sort text #默认比较首个字符的hash值来排序
1
1
1
10
11
11
11
2
2
3
3
33
4
44
5
5
6
7
8
9
A
[[email protected] home]# sort -n text #按照数值排列
A
1
1
1
2
2
3
3
4
5
5
6
7
8
9
10
11
11
11
33
44
[[email protected] home]# sort -nr text #倒序
44
33
11
11
11
10
9
8
7
6
5
5
4
3
3
2
2
1
1
1
A
[[email protected] home]# sort -R text #随机排序
44
7
8
1
1
1
9
2
2
11
11
11
A
5
5
3
3
33
10
6
4

2.cut命令:有时候文件按照列成规律性的排列,我们需要取出莫一列或者几列数据,就可以使用cut命令从垂直方向去选取部分。

常用方法及参数:
cut options [file]
 -d #自定义分隔符
 -c #只选择指定字符
 -f #只选择列表中指定的文本列,文本列用列号表示,多个列用逗号隔开
 -s #不输出不包含列分隔符的行
例子:查看/etc/passwd文件,取出所有的用户以及对应的uid,gid以及家目录
[[email protected] home]# cut -d":" -f 1,3,4,7  /etc/passwd|head -n10
root:0:0:/bin/bash
bin:1:1:/sbin/nologin
daemon:2:2:/sbin/nologin
adm:3:4:/sbin/nologin
lp:4:7:/sbin/nologin
sync:5:0:/bin/sync
shutdown:6:0:/sbin/shutdown
halt:7:0:/sbin/halt
mail:8:12:/sbin/nologin
uucp:10:14:/sbin/nologin
[[email protected] home]# 

3.uniq:uniq命令用于检查及删除文本文件中重复出现的行列

 -c # 在每列旁边显示该行重复出现的次数。
 -d #仅显示重复出现的行列。
 -u #仅显示出一次的行列
 --help  #显示帮助。
 --version  #显示版本信息。
[[email protected] home]# sort -n text
A
1
1
1
2
2
3
3
4
5
5
6
7
8
9
10
11
11
11
33
44

[[email protected] home]# sort -n text|uniq -c #显示出现的次数
      1 A
      3 1
      2 2
      2 3
      1 4
      2 5
      1 6
      1 7
      1 8
      1 9
      1 10
      3 11
      1 33
      1 44
[[email protected] home]# sort -n text|uniq -u #显示只出现过一次的
A
4
6
7
8
9
10
33
44
[[email protected] home]# sort -n text|uniq -d #显示重复出现的
1
2
3
5
11
[[email protected] home]#
生成一个55以内的随机数
[[email protected] home]# seq 55|sort -R|head -1
4

原文地址:http://blog.51cto.com/12013190/2106522

时间: 2024-07-30 07:58:15

shell学习文件操作之sort,cut,uniq的相关文章

Python学习—文件操作

1.文件基础知识 1.文件是存储在外部介质上的数据的集合,文件的基本单位是字节,文件所含的字节数就是文件的长度.每个字节都有一个默认的位置,位置从0开始,文件头的位置就是0,文件尾的位置是文件内容结束后的后一个位置,该位置上没有文件内容,为空.文件的读写操作从文件指针所在的位置开始,即读会从文件指针所在的位置开始读取,写会从文件指针所在的位置开始写,如有内容,则会被覆盖.2.按文件中数据的组织形式把文件分为文本文件和二进制文件两类.文本文件存储的是常规字符串,由文本行组成,通常以换行符'\n'结

Linux学习-文件操作

文件操作 pwd 显示当前的目录名称 cd 更改当前的操作目录 cd /path/to/...绝对路径 cd ./path/to/..相对路径 cd ../path/to/..相对路径 cd /root 回到根目录 cd - 返回上一次的目录中 cd ./ .表示当前的目录 cd .. 回到上一级目录 / 和 /root 是不同的目录 / 是根目录 /root 是root用户的家目录 ls 查看当前目录下的文件 常用参数 l 长格式显示文件,以文件名进行排序 a 显示隐藏文件 r 逆序显示,以文

shell学习(5)- sort

Linux sort命令用于将文本文件内容加以排序. sort可针对文本文件的内容,以行为单位来排序. 参数如下: -b 忽略每行前面开始出的空格字符. -c 检查文件是否已经按照顺序排序. -d 排序时,处理英文字母.数字及空格字符外,忽略其他的字符. -f 排序时,将小写字母视为大写字母. -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符. -m 将几个排序好的文件进行合并. -M 将前面3个字母依照月份的缩写进行排序. -n 依照数值的大小排序. -o<输出文件>

shell脚本之正则表达式(四)---sort与uniq工具

sort 工具 sort 是一个以行为单位对文件内容进行排序的工具,也可以根据不同的数据类型来排序. sort 语法 sort [选项] 参数 sort常用选项 -f:忽略大小写 -b:忽略每行前面的空格 -M:按照月份进行排序 -n:按照数字进行排序 -r:反向排序 -u:表示相同的数据仅显示一行(去除不连续的重复) -t:指定分隔符,默认使用[Tab]键分隔 -o <输出文件>:将排序后的结果转存至指定文件 -k:指定排序区域 范例演示 将/etc/passwd 文件中第三列进行排序,并将

Python学习-文件操作

打开和关闭文件: Python 提供了必要的函数和方法进行默认情况下的文件基本操作. open 函数 你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写. 语法: file object = open(file_name [, access_mode][, buffering]) 各个参数的细节如下: ①file_name:file_name变量是一个包含了你要访问的文件名称的字符串值. ②access_mode:access_mode

python基础学习——文件操作的其他方法

1.closed 判断文件是否关闭,关闭则返回True 2.encoding,文件打开的编码方式 3.flush刷新:将内存数据刷新到硬盘里 4.tell:当前光标所在位置 只要不是read方法,读取的是字符.其余的文件内光标移动都是以字节为单位 f=open("肖战哥哥","r",encoding="utf-8",newline="") #读取文件中真正的换行符号 print(f.tell()) f.readline() p

sort,cut,uniq

Python学习——文件操作和异常处理

# title = "Alice in Wonderland"# print(title.split()) def count_words(filename): ''' count how many words in a text file ''' try: with open(filename) as f_obj: contents = f_obj.read() except FileNotFoundError: pass #msg = "Sorry, the file &

十三、python沉淀之路--文件操作

一.文件的读操作 例1 1 f = open('学习',encoding='utf-8') #首先要打开文件,不然直接读,是读不出来的 2 data = f.read() #read后的括号里不添加任何东西 3 print(data) 4 f.close() #读取完了后一定要记得关闭文件,不然内存会一直交互数据占据内存空间,而且不关闭,数据容易丢失,或被别人读取 例2:readline   readable 1 f = open('学习','r',encoding='utf-8') 2 3 p