Linux Shell编程 sort、wc命令

sort命令:字符串排序

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

sort 命令格式如下:

[[email protected] ~]# sort [选项] 文件名

选项:

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

sort命令示例

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

[[email protected] ~]# sort /etc/passwd
abrt:x:173:173::/etc/abrt:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin apache:x:48:48:Apache:/var/www:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
…省略部分输出…

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

[[email protected] ~]# sort -r /etc/passwd
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
…省略部分输出…

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

[[email protected] ~]# sort -t":"-k 3,3 /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
…省略部分输出…

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

[[email protected] ~]# sort -n -t":" -k 3,3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spod/lpd:/sbin/nologin
...省略部分输出...

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

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

命令格式如下:

[[email protected] ~]# wc [选项] 文件名

选项:

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

wc命令示例

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

[[email protected] ~]# wc /etc/passwd
32 55 1537 /etc/passwd

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

[[email protected] ~]# netstat -an | grep ESTABLISHED | wc -l
4

原文地址:https://www.cnblogs.com/lizhouwei/p/10034188.html

时间: 2024-10-12 09:25:29

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

Linux Shell编程 - 字符截取命令

01.字段提取命令 cut  =>   cut [选项] 文件名 -f 列号: 提取第几列 -d 分隔符:按照指定分割符分割列 例如:cut  -f  2,4(列号:,逗号可以多行提取)  student.txt cut  -d “:” -f 1,3 /etc/passwd 02.格式化输出命令 printf 命令  => printf  ‘输出类型输出格式’  输出内容 输出类型: %ns:输出字符串.n 是数字指代输出几个字符 %ni:输出整数.n 是数字指代输出几个数字 %m.nf:输出

Pytohn实现Linux shell中的wc命令

#!/usr/bin/python import sys import os from optparse import OptionParser    def opt():     parser = OptionParser()     parser.add_option("-c", "--char",                       dest="chars",                       action="s

Linux Shell 编程 教程 常用命令

概述: 一: 1. 2. 3. 二: 1. 2. 3. 三: 1. 2. 3. 四: 1. 2. 3. 五: 1. 2. 3. 六: 1. 2. 3. 七: 1. 2. 3. 八: 1. 2. 3. 九: 1. 2. 3. 十: 1. 2. 3. 原文地址:https://www.cnblogs.com/jackadam/p/8594549.html

Linux Shell编程讲解

Shell编程总结 Seq命令总结用法: 选项: -f, --format=格式使用printf 样式的浮点格式 -s, --separator=字符串使用指定字符串分隔数字(默认使用:\n) -w, --equal-width 在列前添加0 使得宽度相同实例 来自: http://man.linuxde.net/seq 1.横着打印数字 2.竖着打印数字: 3.用seq输出,交给bc命令计算 注:可以计算加减乘除,浮点数,进制转换 Echo命令用法总结: echo 选项列表 选项 描述 -n

Linux Shell 编程实战技巧

目前,越来越多的企业应用会部署在 Linux 系统上的,而 Linux Shell 脚本可以极大地帮助我们完成这些应用的运维任务.这使得 Linux Shell 开发技能成为开发人员的一项重要的.有竞争力的技能.本文就笔者的实际开发经验,以 Korn Shell 为例分享了脚本开发中的常见问题及相关技巧. 避免定时任务脚本的常见问题 很多脚本在实际使用的时候往往是以定时任务的方式运行,而非手工运行.但是实现同样功能的脚本在这两种运行方式下可能遇到的问题不尽相同. 以定时任务方式运行的脚本往往会遇

关于linux shell编程,alias rm='cp [email protected] ~/backup; rm [email protected]'

书上的这个例子需要在ubuntu的低版本的系统才支持,现在基本上都不支持了,想实现也很简单自己写一个脚本先备份再删除. alias也只是做了一次替换alias rm='cp [email protected] ~/backup; rm [email protected]' rm text.txt被转换成了cp  [email protected] ~/backup; rm [email protected] text.txt即cp  ~/backup; rm  text.txt可以看到text.

京峰Linux Shell编程从入门到精通

课程介绍:Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行. -------------------课程目录------------------- <Shell编程从入门到精通> ├1.linux下shell编程基础入门_(new).mp4├2.Shell编程之变量及LAMP导航菜单编写_(new).mp4├3.Shell编程之IF条件语句各种案例演练_(new).mp4├4.使用if条件语句编写MySQL备份脚本_(new).mp4

Linux Shell编程之二选择结构

Shell编程学习之二 一.bash的条件测试 测试方法或者说测试书写: test EXPR [ EXPR ] [[ EXPR ]] 例如:测试变量 User_Name 的之是否为root test $User_Name="root" [ $User_Name == "root" ] [[ $User_Name == "root" ] 根据比较时操作数的类型,测试类型分为: 测试类型 运算符 运算符所代表的意义 示例 整形测试 -gt -lt -

Linux Shell编程之五字符串的处理

shell编程之字符串处理 在 shell 中,由于是一种弱类型的语言,在没有事先申明变量类型的情况下,所有的变量都是字符串.所以对字符串的处理就显得相当重要了. 下面介绍常见的对字符串处理的操作. 一.字符串切片 ${string_var:offest:length},类似于数组元素的提取. # 这里的string_var是一个变量,offest 是字符串的开始偏移量,length是切去字符串的长度 var=dhcpd:x:177:177:DHCP server:/:/sbin/nologin