sort排序/uniq去重/cut提取

sort排序

-t  # 指定排序时所用的栏位分隔字符
-n  # 依照数值的大小排序
-r  # 以相反的顺序来排序
-f  # 排序时,将小写字母视为大写字母
-d  # 排序时,处理英文字母、数字及空格字符外,忽略其他的字符
-c  # 检查文件是否已经按照顺序排序
-b  # 忽略每行前面开始处的空格字符
-M  # 前面3个字母依照月份的缩写进行排序
-k  # 指定域
-m  # 将几个排序好的文件进行合并
-T  # 指定临时文件目录,默认在/tmp
+<起始栏位>-<结束栏位>   # 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
-o  # 将排序后的结果存入指定的文

sort -n               # 按数字排序
sort -nr              # 按数字倒叙
sort -u               # 过滤重复行
sort -m a.txt c.txt   # 将两个文件内容整合到一起
sort -n -t' ' -k 2 -k 3 a.txt     # 第二域相同,将从第三域进行升降处理
sort -n -t':' -k 3r a.txt         # 以:为分割域的第三域进行倒叙排列
sort -k 1.3 a.txt                 # 从第三个字母起进行排序
sort -t" " -k 2n -u  a.txt        # 以第二域进行排序,如果遇到重复的,就删除

uniq去除排序过的重复行

uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。
uniq                    # 删除重复的行
uniq -c                 # 重复的行出现次数
uniq -d                   # 只输出重复的行
uniq -u                 # 只显示不重复行
uniq -i                    # 忽略大小写字符的不同;

cut提取

cut - 在文件的每一行中提取片断
-b, --bytes=LIST 输出 这些 字节 
-c, --characters=LIST 输出 这些 字符 
-d, --delimiter=DELIM 使用 DELIM 取代 TAB 做 字段(field) 分隔符 
-f, --fields=LIST 输出 这些 字段 
使用且只使用 -b, -c 或 -f 中的 一个 选项. LIST 由 一个 范围 (range) 或 逗号 隔开的 多个 范围 组成. 范围 是 下列 形式 之一:
    N    第 N 个 字节, 字符 或 字段, 从 1 计数 起 
    N-    从 第 N 个 字节, 字符 或 字段 直至 行尾 
    N-M    从 第 N 到 第 M (并包括 第M) 个 字节, 字符 或 字段
    -M    从 第 1 到 第 M (并包括 第M) 个 字节, 字符 或 字段 

cat /etc/passwd | cut -c 1-4        #输出文件的前四个字符
cat /etc/passwd | cut -f1 -d ':'    #以:分割文件,输出第一个字段
暂无评论