sort命令:字符串排序

sort 命令可以依据不同的数据类型来进行排序。sort 将文件的每一行作为一个单位,相互比较。比较原则是从首字符向后,依次按 ASCII 码值进行比较,最后将它们按升序输出。

sort 命令格式如下:

[root@localhost ~]# sort [选项] 文件名

选项:

  • -f:忽略大小写;
  • -b:忽略每行前面的空白部分;
  • -n:以数值型进行排序,默认使用字符串排序;
  • -r:反向排序;
  • -u:删除重复行。就是 uniq 命令;
  • -t:指定分隔符,默认分隔符是制表符;
  • -k [n,m]:按照指定的字段范围排序。从第 n 个字段开始,到第 m 个字(默认到行尾);

sort命令示例

sort 命令默认是用每行开头的第一个字符来进行排序的,比如:

[root@localhost ~]# sort /etc/passwd
abrt:x::::/etc/abrt:/sbin/nologin
adm:x:::adm:/var/adm:/sbin/nologin apache:x:::Apache:/var/www:/sbin/nologin
bin:x:::bin:/bin:/sbin/nologin
daemon:x:::daemon:/sbin:/sbin/nologin
…省略部分输出…

如果想要反向排序,则使用“-r”选项,比如:

[root@localhost ~]# sort -r /etc/passwd
vcsa:x:::virtual console memory owner:/dev:/sbin/nologin
uucp:x:::uucp:/var/spool/uucp:/sbin/nologin
tcpdump:x::::/:/sbin/nologin
…省略部分输出…

如果想要指定排序的字段,则需要使用"-t"选项指定分隔符,并使用"-k"选项指定字段号。假如我想要按照 UID 字段排序 /etc/passwd 文件,命令如下:

[root@localhost ~]# sort -t":"-k , /etc/passwd
bin:x:::bin:/bin:/sbin/nologin
uucp:x:::uucp:/var/spool/uucp:/sbin/nologin
operator:x:::operator:/root:/sbin/nologin
abrt:x::::/etc/abrt:/sbin/nologin
daemon:x:::daemon:/sbin:/sbin/nologin
…省略部分输出…

指定分隔符是":",以第三个字段开头,以第三个字段结尾排序,也就是只用第三个字段排序
sort 默认是按照字符排序的,daemon 用户的 UID 是 2,前面用户的 UID 的第一个字符都是 1,所以daemon 用户排在了最后。如果要想按照数字排序,请使用"-n"选项,比如:

[root@localhost ~]# sort -n -t":" -k , /etc/passwd
root:x:::root:/root:/bin/bash
bin:x:::bin:/bin:/sbin/nologin
daemon:x:::daemon:/sbin:/sbin/nologin
adm:x:::adm:/var/adm:/sbin/nologin
lp:x:::lp:/var/spod/lpd:/sbin/nologin
...省略部分输出...

当然,"-k"选项可以直接使用"-k 3",代表从第三个字段到行尾都排序(第一个字段先排序,如果一致,则第二个字段再排序,直到行尾)。

wc命令:统计指定文件中的字节数、字数、行数

命令格式如下:
[root@localhost ~]# wc [选项] 文件名

选项:

  • -l:只统计行数;
  • -w:只统计单词数;
  • -m:只统计字符数;

wc命令示例

统计一下 /etc_passwd 文件中到底有多少行、多个单词、多少个字符,命令如下:

[root@localhost ~]# wc /etc/passwd
/etc/passwd

统计服务器上有多少个正常连接

[root@localhost ~]# netstat -an | grep ESTABLISHED | wc -l

Linux Shell编程 sort、wc命令的更多相关文章

  1. Linux Shell 编程 教程 常用命令

    概述: Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户 ...

  2. Linux Shell编程中的几个特殊符号命令 & 、&& 、 ||

    https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || ...

  3. linux —— shell 编程(文本处理)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...

  4. Linux Shell编程与编辑器使用详解

    <Linux Shell编程与编辑器使用详解> 基本信息 作者: 刘丽霞 杨宇 出版社:电子工业出版社 ISBN:9787121207174 上架时间:2013-7-22 出版日期:201 ...

  5. linux shell编程总结

    linux shell编程总结 本周学习了unix/linux shell编程,参考的是<LINUX与UNIX Shell 编程指南>,David Tansley著:徐焱,张春萌等译,由机 ...

  6. linux —— shell 编程(编程语法)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...

  7. Linux Shell编程参考大全

    本文记录Linux Shell编程中常用基本知识,方便快速入门以及查询使用. 本文主要分为以下几个部分: 一.Shell中的变量 任何编程语言中,有关变量的定义,作用范围,赋值等都是最最基础的知识. ...

  8. linux shell 编程参考

    #!/bin/bash my_fun() { echo "$#" } echo 'the number of parameter in "$@" is '$(m ...

  9. linux shell编程,先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程才运行

    linux shell编程,先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程才运行 crontab每分钟执行一次,但5秒以上才有更新数据,有时候一分钟可能跑不完上一个进程,需要先等10秒再判 ...

随机推荐

  1. 机器人的运动范围 剑指offer66题

    include "stdafx.h" #include<vector> #include<algorithm> #include<string> ...

  2. 设备树API

    引子 首先看一个例子,也可参考linux设备树语法中的gpio示例.该示例选自openwrt的gpio-button-hotblug驱动. 设备树code: gpio-keys-polled { co ...

  3. XCode 4.6下XIB文件提示“...could not be opened..."的问题

    最近更新了Mac系统和XCode,当我把一个以前的项目用Xcode5打开以后,再用Xcode4.6打开时,选中XXXX.xib/storyboard文件,有的文件会弹出 "The docum ...

  4. ORA-00349: failure obtaining block size for &#39;+fra_grp01_d

    有一次恢复库以后,open时报错ORA-00349,例如以下.最后通过删除这个log group解决.   SQL> alter database open resetlogs; alter d ...

  5. Android DRM

    最近在了解Android DRM相关的一些知识,下面转一个ARM大佬分享的内容: 前言 本文简略地介绍了如何在Android下实现DRM(Digital Rights Management, 数字版权 ...

  6. 第一百七十五节,jQuery,工具函数

    jQuery,工具函数 学习要点: 1.字符串操作 2.数组和对象操作 3.测试操作 4.URL 操作 5.浏览器检测 6.其他操作 工具函数是指直接依附于 jQuery 对象,针对 jQuery 对 ...

  7. 循环杀死Mysql sleep进程脚本

    #!/bin/sh while : do n=`mysqladmin processlist -uadmin -p***|grep -i sleep |wc -l` date=`date +%Y%m% ...

  8. 内存空间申请(C)

    标准C,C++: malloc----free new----delete WINDOWS API: gnew(.net) LocalAlloc----LocalFree GlobalAlloc--- ...

  9. 1. 写出一个能创建多级目录的 PHP 函数(新浪网技术部)

    function create_dir($path,$mode){ if (is_dir($path)){ echo "该目录已经存在"; }else{ if(mkdir($pat ...

  10. 一套一般般的前端框架 layui

    http://www.layui.com/doc/