linux 命令使用2--sort

1. 简介

  以行为单位对文本文件的内容进行排序,将结果显示在标准输出,比较原则是从行首字符向后,依次按 ASCII 码值进行比较,最后按升序输出。如果 file 参数指定多个文件,那么 sort 命令将这些文件纵向连接起来,当作一个文件进行排序。

不加任何选项时,将对整行从第一个字符开始依次向后直到行尾按照 ASCII 码值做升序排序。

 

2. 选项说明

    • -n:

      --numeric-sort

        按数值大小排序

    • -r:

      --reverse

        逆向输出排序结果(降序排序)

    • -k:

      -key=POS1[,POS2]

        以第 POS1 栏到 POS2 栏排序,默认到最后一栏 

    • -t:

      --field-separator=SEP

       指定排序时使用的分隔字符,sort命令默认字段分隔符为空格和Tab

 

3. 实例

3.1. 按照cpu降序排序:

ps aux|head -1;ps auxw|sort -rn  -k3

1
2
3
4
5
6
7
zhancj@iZbp10j40ovkbwx9an9ppuZ:~$ ps aux|head -1;ps auxw|sort -rn  -k3 |head -5
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     13338  6.0  1.1 2640268 92228 ?       Ssl   2021 20668:50 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=cgroupfs --hostname-override=iz2zeabl8ta0jq1nd850igz --network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.2 --resolv-conf=/run/systemd/resolve/resolv.conf
root     14082  3.4  4.1 573712 337000 ?       Ssl   2021 11680:40 kube-apiserver --advertise-address=172.16.207.15 --allow-privileged=true --authorization-mode=Node,RBAC --client-ca-file=/etc/kubernetes/pki/ca.crt --enable-admission-plugins=NodeRestriction --enable-bootstrap-token-auth=true --etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt --etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt --etcd-keyfile=/etc/kubernetes/pki/apiserver-etcd-client.key --etcd-servers=https://127.0.0.1:2379 --insecure-port=0 --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt --kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt --proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key --requestheader-allowed-names=front-proxy-client --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt --requestheader-extra-headers-prefix=X-Remote-Extra- --requestheader-group-headers=X-Remote-Group --requestheader-username-headers=X-Remote-User --secure-port=6443 --service-account-key-file=/etc/kubernetes/pki/sa.pub --service-cluster-ip-range=10.96.0.0/12 --service-node-port-range=1-65535 --tls-cert-file=/etc/kubernetes/pki/apiserver.crt --tls-private-key-file=/etc/kubernetes/pki/apiserver.key
root     19940  2.2  0.2 279352 23588 ?        S<sl Aug15  99:35 /usr/local/aegis/aegis_client/aegis_11_35/AliYunDun
systemd+ 10798  1.6  6.3 1298728 519196 ?      Ssl   2021 5770:22 consul agent -data-dir=/consul/data -config-dir=/consul/config -server -bootstrap-expect=3 -ui -data-dir=/consul/data -bind=0.0.0.0 -client=0.0.0.0 -advertise=10.244.0.7 -retry-join=consul-server-0.consul-server.default.svc.cluster.local -retry-join=consul-server-1.consul-server.default.svc.cluster.local -retry-join=consul-server-2.consul-server.default.svc.cluster.local -domain=consul -disable-host-node-id
root     14284  1.6  0.8 215000 66268 ?        Ssl  Jul05 1016:49 kube-controller-manager --allocate-node-cidrs=true --authentication-kubeconfig=/etc/kubernetes/controller-manager.conf --authorization-kubeconfig=/etc/kubernetes/controller-manager.conf --bind-address=127.0.0.1 --client-ca-file=/etc/kubernetes/pki/ca.crt --cluster-cidr=10.244.0.0/16 --cluster-name=kubernetes --cluster-signing-cert-file=/etc/kubernetes/pki/ca.crt --cluster-signing-key-file=/etc/kubernetes/pki/ca.key --controllers=*,bootstrapsigner,tokencleaner --kubeconfig=/etc/kubernetes/controller-manager.conf --leader-elect=true --node-cidr-mask-size=24 --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt --root-ca-file=/etc/kubernetes/pki/ca.crt --service-account-private-key-file=/etc/kubernetes/pki/sa.key --service-cluster-ip-range=10.96.0.0/12 --use-service-account-credentials=true

这句话是为了输出第一行的字段意义:ps aux|head -1; 

3.2. 按照内存百分比降序排序:

ps auxw|head -1;ps auxw|sort -rn -k4

1
2
3
4
5
6
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
systemd+ 10973  1.3  6.4 1298920 529780 ?      Ssl   2021 4623:36 consul agent -data-dir=/consul/data -config-dir=/consul/config -server -bootstrap-expect=3 -ui -data-dir=/consul/data -bind=0.0.0.0 -client=0.0.0.0 -advertise=10.244.0.6 -retry-join=consul-server-0.consul-server.default.svc.cluster.local -retry-join=consul-server-1.consul-server.default.svc.cluster.local -retry-join=consul-server-2.consul-server.default.svc.cluster.local -domain=consul -disable-host-node-id
root     25312  0.0  6.4 1019320 526456 ?      Sl   Aug17   0:45 gunicorn: worker [mage_omp.wsgi:application]
systemd+ 10798  1.6  6.3 1298728 519196 ?      Ssl   2021 5770:24 consul agent -data-dir=/consul/data -config-dir=/consul/config -server -bootstrap-expect=3 -ui -data-dir=/consul/data -bind=0.0.0.0 -client=0.0.0.0 -advertise=10.244.0.7 -retry-join=consul-server-0.consul-server.default.svc.cluster.local -retry-join=consul-server-1.consul-server.default.svc.cluster.local -retry-join=consul-server-2.consul-server.default.svc.cluster.local -domain=consul -disable-host-node-id
systemd+  7269  1.3  6.1 1230756 501804 ?      Ssl   2021 4592:27 consul agent -data-dir=/consul/data -config-dir=/consul/config -server -bootstrap-expect=3 -ui -data-dir=/consul/data -bind=0.0.0.0 -client=0.0.0.0 -advertise=10.244.0.4 -retry-join=consul-server-0.consul-server.default.svc.cluster.local -retry-join=consul-server-1.consul-server.default.svc.cluster.local -retry-join=consul-server-2.consul-server.default.svc.cluster.local -domain=consul -disable-host-node-id
root     14082  3.4  4.1 573712 337000 ?       Ssl   2021 11680:45 kube-apiserver --advertise-address=172.16.207.15 --allow-privileged=true --authorization-mode=Node,RBAC --client-ca-file=/etc/kubernetes/pki/ca.crt --enable-admission-plugins=NodeRestriction --enable-bootstrap-token-auth=true --etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt --etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt --etcd-keyfile=/etc/kubernetes/pki/apiserver-etcd-client.key --etcd-servers=https://127.0.0.1:2379 --insecure-port=0 --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt --kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt --proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key --requestheader-allowed-names=front-proxy-client --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt --requestheader-extra-headers-prefix=X-Remote-Extra- --requestheader-group-headers=X-Remote-Group --requestheader-username-headers=X-Remote-User --secure-port=6443 --service-account-key-file=/etc/kubernetes/pki/sa.pub --service-cluster-ip-range=10.96.0.0/12 --service-node-port-range=1-65535 --tls-cert-file=/etc/kubernetes/pki/apiserver.crt --tls-private-key-file=/etc/kubernetes/pki/apiserver.key

 

3.3. 按照内存量降序排序:

ps aux|head -1;ps auxw|sort -rn  -k6

1
2
3
4
5
6
7
zhancj@iZbp10j40ovkbwx9an9ppuZ:~$ ps aux|head -1;ps auxw|sort -rn  -k6 |head -5
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
systemd+ 10973  1.3  6.4 1298920 529780 ?      Ssl   2021 4623:37 consul agent -data-dir=/consul/data -config-dir=/consul/config -server -bootstrap-expect=3 -ui -data-dir=/consul/data -bind=0.0.0.0 -client=0.0.0.0 -advertise=10.244.0.6 -retry-join=consul-server-0.consul-server.default.svc.cluster.local -retry-join=consul-server-1.consul-server.default.svc.cluster.local -retry-join=consul-server-2.consul-server.default.svc.cluster.local -domain=consul -disable-host-node-id
root     25312  0.0  6.4 1019320 526456 ?      Sl   Aug17   0:46 gunicorn: worker [mage_omp.wsgi:application]
systemd+ 10798  1.6  6.3 1298728 519196 ?      Ssl   2021 5770:24 consul agent -data-dir=/consul/data -config-dir=/consul/config -server -bootstrap-expect=3 -ui -data-dir=/consul/data -bind=0.0.0.0 -client=0.0.0.0 -advertise=10.244.0.7 -retry-join=consul-server-0.consul-server.default.svc.cluster.local -retry-join=consul-server-1.consul-server.default.svc.cluster.local -retry-join=consul-server-2.consul-server.default.svc.cluster.local -domain=consul -disable-host-node-id
systemd+  7269  1.3  6.1 1230756 501804 ?      Ssl   2021 4592:27 consul agent -data-dir=/consul/data -config-dir=/consul/config -server -bootstrap-expect=3 -ui -data-dir=/consul/data -bind=0.0.0.0 -client=0.0.0.0 -advertise=10.244.0.4 -retry-join=consul-server-0.consul-server.default.svc.cluster.local -retry-join=consul-server-1.consul-server.default.svc.cluster.local -retry-join=consul-server-2.consul-server.default.svc.cluster.local -domain=consul -disable-host-node-id
root     14082  3.4  4.1 573712 337000 ?       Ssl   2021 11680:46 kube-apiserver --advertise-address=172.16.207.15 --allow-privileged=true --authorization-mode=Node,RBAC --client-ca-file=/etc/kubernetes/pki/ca.crt --enable-admission-plugins=NodeRestriction --enable-bootstrap-token-auth=true --etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt --etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt --etcd-keyfile=/etc/kubernetes/pki/apiserver-etcd-client.key --etcd-servers=https://127.0.0.1:2379 --insecure-port=0 --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt --kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt --proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key --requestheader-allowed-names=front-proxy-client --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt --requestheader-extra-headers-prefix=X-Remote-Extra- --requestheader-group-headers=X-Remote-Group --requestheader-username-headers=X-Remote-User --secure-port=6443 --service-account-key-file=/etc/kubernetes/pki/sa.pub --service-cluster-ip-range=10.96.0.0/12 --service-node-port-range=1-65535 --tls-cert-file=/etc/kubernetes/pki/apiserver.crt --tls-private-key-file=/etc/kubernetes/pki/apiserver.key

 

3.4. /etc/passwd 内容以冒号:来分隔,以第三栏至行末尾栏来排序。

cat /etc/passwd | sort -t ':' -n -k3

按照整数排序

 

zhancj@iZbp10j40ovkbwx9an9ppuZ:~$ cat /etc/passwd | sort -t ':' -n -k3
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin

 

posted @ 2022-08-18 11:27  若-飞  阅读(122)  评论(0)    收藏  举报