文本处理工具

==============================================================================

概述:


==============================================================================

文本处理工具:wc、cut、sort、uniq

 1.抽取文本

cut:文本内容切割

  • cut命令就是将文件中的内容按照某种分隔符进行切割,然后取出指定的字段;

  • 原内容或者原文件不受影响;

用法:

  • cut [OPTION]... [FILE]...

选项:

-d DELIMITER:指明分隔符,默认tab;

-f FILEDS:指明需要取出的字段;

  • #:第#个字段

  • #,#[,#]:离散的多个字段,例如1,3,6

  • #-#:连续的多个字段

  • 混合使用:1-3,7

--output-delimiter=STRING:指定输出结果的分隔符(也可以用tr命令转换分隔符);

-c:按字符切割

演示:

[root@centos7 ~]# tail -5 /etc/passwd
memcached:x:990:985:Memcached daemon:/run/memcached:/sbin/nologin
zabbix:x:989:984:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
hacluster:x:189:189:cluster user:/home/hacluster:/sbin/nologin
tomcat:x:91:91:Apache Tomcat:/usr/share/tomcat:/bin/nologin
arclinux:x:1002:1002::/home/arclinux:/bin/bash

# 以":"为分隔符,取出第1列,第3列,第7列
[root@centos7 ~]# tail -5 /etc/passwd |cut -d: -f1,3,7
memcached:990:/sbin/nologin
zabbix:989:/sbin/nologin
hacluster:189:/sbin/nologin
tomcat:91:/bin/nologin
arclinux:1002:/bin/bash

# 指定输出分隔符
[root@centos7 ~]# tail -5 /etc/passwd |cut -d: -f1,3,7 --output-delimiter=--
memcached--990--/sbin/nologin
zabbix--989--/sbin/nologin
hacluster--189--/sbin/nologin
tomcat--91--/bin/nologin
arclinux--1002--/bin/bash
[root@centos7 ~]# tail -5 /etc/passwd |cut -d: -f1,3,7 |tr ':' '--'
memcached-990-/sbin/nologin
zabbix-989-/sbin/nologin
hacluster-189-/sbin/nologin
tomcat-91-/bin/nologin
arclinux-1002-/bin/bash

# 按字符进行切割
[root@centos7 ~]# head -5 /etc/passwd |cut -c1-5
root:
bin:x
daemo
adm:x
lp:x:

 2.合并文件

paste:合并两个文件同行号的列到一行

用法:

  • paste [OPTION]... [FILE]...

选项:

  • -d:分隔符:指定分隔符,默认用TAB

  • -s:所有行合成一行显示

演示:

[root@centos7 ~]# cat /testdir/f1
aaaaaaaa
bbbbbbbb
cccccccc
dddddddd
[root@centos7 ~]# cat /testdir/f2
anaconda-ks.cfg
Desktop
Discuz
Documents

[root@centos7 ~]# paste /testdir/f1 /testdir/f2
aaaaaaaa	anaconda-ks.cfg
bbbbbbbb	Desktop
cccccccc	Discuz
dddddddd	Documents
[root@centos7 ~]# paste -s /testdir/f1 /testdir/f2
aaaaaaaa	bbbbbbbb	cccccccc	dddddddd
anaconda-ks.cfg	Desktop	Discuz	Documents

[root@centos7 ~]# paste /testdir/f1 /testdir/f2
aaaaaaaa	anaconda-ks.cfg
bbbbbbbb	Desktop
cccccccc	Discuz
dddddddd	Documents
eeeeeeee	
ffffffff	

 3.收集文本统计数据工具

wc:字符统计

用法:

  • wc [OPTION]... [FILE]...

选项:

  • -l:linx,统计行数;

  • -w:words,统计单词总数;

  • -c:character,统计字符总数;

演示:

[root@centos7 ~]# wc -l /etc/passwd
46 /etc/passwd
[root@centos7 ~]# wc -w /etc/passwd
90 /etc/passwd
[root@centos7 ~]# wc -c /etc/passwd
2467 /etc/passwd

[root@centos7 ~]# wc  /etc/passwd
  46   90 2467 /etc/passwd

 4.文本排序工具

sort:文本排序

  • 把整理过的文本对列进行排序,显示在STDOUT,不改变原始文件。

用法:

  • sort [OPTION]... [FILE]...

选项:

  • -n:以数值大小进行排序;

  • -r:逆序;

  • -f:忽略字符大小写;

  • -t delimiter:字段分隔符;

  • -k #:以指定字段为标准排序;

  • -u:重复的行只保留一份(除去连续重复的行,只保留一次)

演示:

[root@centos7 ~]# head -5 /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/spool/lpd:/sbin/nologin

# -t 指定分隔符,-k 指明字段,-n 按数值大小进行排序,-r 逆序排列
[root@centos7 ~]# head -5 /etc/passwd |sort -t: -k3 -n
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/spool/lpd:/sbin/nologin

[root@centos7 ~]# head -5 /etc/passwd |sort -t: -k3 -nr
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash

 2.sort -u

[root@centos7 ~]# cut -d: -f7 /etc/passwd |sort
/bin/bash
/bin/bash
/bin/bash
/bin/bash
/bin/bash
/bin/nologin
/bin/sync
/sbin/halt
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/shutdown

# 除去连续重复的行,只保留一次
[root@centos7 ~]# cut -d: -f7 /etc/passwd |sort -u
/bin/bash
/bin/nologin
/bin/sync
/sbin/halt
/sbin/nologin
/sbin/shutdown

# 实现的功能同sort -u
[root@centos7 ~]# cut -d: -f7 /etc/passwd |sort |uniq 
/bin/bash
/bin/nologin
/bin/sync
/sbin/halt
/sbin/nologin
/sbin/shutdown

[root@centos7 ~]# cut -d: -f7 /etc/passwd |sort -u |wc -l
6


 5.uniq命令

uniq:去重,及统计重复次数

  • 从输入中删除重复的前后相接的行(相邻的行)

用法:

  • uniq [OPTION]... [INPUT [OUTPUT]]

选项:

  • -c:显示每行重复出现的次数;

  • -d:仅显示重复过的行;

  • -u:仅显示不曾重复的行;

注意:

  • 连续且完全相同的方为重复

  • 常和 sort 命令一起配合使用(sort -u 和 sort|uniq相同):如:sort userlist.txt | uniq -c

演示:

# 把文件中所有的非字母的用回车换行符“\n”替换并压缩,-c 为取[:alpha:]的补集,-s 为压缩
[root@centos7 ~]# cat /etc/init.d/functions |tr -cs '[:alpha:]' '\n'
eq
success
base
startup
failure
base
startup
A
function
to
stop
a
program
killproc
local
RC
killlevel
base

# 将转换出来的结果排序,默认是按字符顺序排序
[root@centos7 ~]# cat /etc/init.d/functions |tr -cs '[:alpha:]' '\n' |sort
is
is
is
is
it
it
it
it
it
it
its
kill
kill
kill
kill
Kill
KILL
KILL
killlevel
killlevel
killlevel
killlevel
killlevel
killlevel
killlevel
killlevel
killproc
killproc
killproc
l
lang
LANGSH
LANGSH
LANGSH
let
lets
level
level

# uniq -c 去重并显示每行重复的次数
[root@centos7 ~]# cat /etc/init.d/functions |tr -cs '[:alpha:]' '\n' |sort |uniq -c 
      9 user
      1 using
      2 usleep
      4 usr
      1 uU
      2 v
     13 var
      6 verbose
      4 via
      5 warning
      5 WARNING
      1 whether
      3 while
      1 width
     13 x
      1 xcondrestart
      1 xforce
      1 xreload
      1 xrestart
      1 xstart
      1 xstop
      1 xtry
      3 yes
      2 yY
     24 z

# 按重复的次数进行数值大小排序
[root@centos7 ~]# cat /etc/init.d/functions |tr -cs '[:alpha:]' '\n' |sort |uniq -c |sort -n
      1 
      1 aA
      1 abnormally
      1 strstr
      1 SubState
      1 succeeded
      1 sys
      1 t
      1 TEXTDOMAIN
      1 true
      1 txt
      1 ulimit
      1 unknown
      1 unless
      1 unset
      1 used
      1 Useful
      1 using
      1 uU
      1 whether
      1 width
      1 xcondrestart
      2 startup
      2 stop
      2 style
      2 sure
      2 SYSTEMCTL
      2 TERM
      2 they
      2 This
      2 tT
      2 umask
      2 up
      2 update
      2 usleep
      3 killproc
      3 LANGSH
      3 lib
      3 NICELEVEL
      3 only
      3 options
      3 or
      3 proc
      3 restart
      3 ret
      3 sbin
      3 serial
      3 show
      3 something
      4 line
      4 nicelevel
      4 passed
      4 plymouth
      4 reload
      4 shutdown
      4 use
      4 usr
      5 Test
      5 that
      5 warning
      5 WARNING
      6 c
      6 continue
      6 i
      6 init
      6 it
      6 MOVE
      7 nice
      7 not
      7 prog
      7 success
      7 sysconfig
      7 Usage
      8 cgroup
      8 COL
      8 delay
      8 killlevel
      8 lock
      8 pidof
      8 running
      9 do
      9 done
      9 else
      9 failure
      9 pidfile
     10 rc
     10 s
     10 the
     10 to
     11 null
     12 f
     12 pids
     13 color
     13 o
     13 program
     13 run
     13 var
     13 x
     14 bin
     14 dev
     14 shift
     15 systemctl
     16 etc
     16 SETCOLOR
     16 sysctl
     17 is
     19 p
     20 a
     20 local
     21 BOOTUP
     21 RC
     23 d
     23 in
     24 z
     29 base
     33 n
     45 fi
     45 return
     47 then
     51 echo
     54 file
     55 if
     67 pid

 6.diff和patch命令

diff:比较两个文件之间的区别

patch:复制对文件的改变;

  • diff命令的输出被保存在一种叫做“补丁”的文件中

  • 使用-u选项来输出“统一的(unified)”diff格式文件,最适用于补丁文件。

  • patch命令复制在其它文件中进行的改变(要谨慎使用 !)

  • 用-b选项来自动备份改变了的文件

演示:

[root@centos7 ~]# cat  /testdir/f1
aaaaaaaa
bbbbbbbb
cccccccc
dddddddd
eeeeeeee
ffffffff

[root@centos7 ~]# cat  /testdir/f2
aaaaaaaa
bbbbbbbb
cccccccc
ddddhhdd
eeeeeeee
fffffddd

# diff 命令 注明第4行和第6行不同
[root@centos7 ~]# diff /testdir/f1 /testdir/f2
4c4
< dddddddd
---
> ddddhhdd
6c6
< ffffffff
---
> fffffddd

# 备份恢复
[root@centos7 ~]# patch -b /testdir/f1 /testdir/diff.log 
patching file /testdir/f1

[root@centos7 ~]# ls /testdir/
diff.log  f1  f1.orig

[root@centos7 ~]# cat /testdir/f1  # 为原来的f2
aaaaaaaa
bbbbbbbb
cccccccc
ddddhhdd
eeeeeeee
fffffddd
[root@centos7 ~]# cat /testdir/f1.orig  # 为原来的f1
aaaaaaaa
bbbbbbbb
cccccccc
dddddddd
eeeeeeee
ffffffff

 



练习:

  1.找出ifconfig命令结果中本机的所有IPv4地址

[root@centos7 ~]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.113  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fed6:e460  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:d6:e4:60  txqueuelen 1000  (Ethernet)
        RX packets 9063  bytes 6222807 (5.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3753  bytes 602301 (588.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 4  bytes 340 (340.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4  bytes 340 (340.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@centos7 ~]# ifconfig |head -2
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.113  netmask 255.255.255.0  broadcast 192.168.1.255

[root@centos7 ~]# ifconfig |head -2 |tail -1
        inet 192.168.1.113  netmask 255.255.255.0  broadcast 192.168.1.255

        [root@centos7 ~]# ifconfig |head -2 |tail -1 |tr ' ' ':'
::::::::inet:192.168.1.113::netmask:255.255.255.0::broadcast:192.168.1.255

[root@centos7 ~]# ifconfig |head -2 |tail -1 |tr -s ' ' ':'
:inet:192.168.1.113:netmask:255.255.255.0:broadcast:192.168.1.255

[root@centos7 ~]# ifconfig |head -2 |tail -1 |tr -s ' ' ':' |cut -d: -f3
192.168.1.113

2.查出分区空间使用率的最大百分比值

[root@centos7 ~]# df
文件系统          1K-块    已用     可用 已用% 挂载点
/dev/sda2      41922560  533688 41388872    2% /
devtmpfs         486140       0   486140    0% /dev
tmpfs            500664       0   500664    0% /dev/shm
tmpfs            500664    6836   493828    2% /run
tmpfs            500664       0   500664    0% /sys/fs/cgroup
/dev/sda3      20961280 3027236 17934044   15% /usr
/dev/sda1        496300  140512   355788   29% /boot
tmpfs            100136       0   100136    0% /run/user/0

[root@centos7 ~]# df |tr -s ' ' ':'
文件系统:1K-块:已用:可用:已用%:挂载点
/dev/sda2:41922560:533688:41388872:2%:/
devtmpfs:486140:0:486140:0%:/dev
tmpfs:500664:0:500664:0%:/dev/shm
tmpfs:500664:6836:493828:2%:/run
tmpfs:500664:0:500664:0%:/sys/fs/cgroup
/dev/sda3:20961280:3027236:17934044:15%:/usr
/dev/sda1:496300:140512:355788:29%:/boot
tmpfs:100136:0:100136:0%:/run/user/0

[root@centos7 ~]# df |tr -s ' ' ':' |cut -d: -f5 
已用%
2%
0%
0%
2%
0%
15%
29%
0%

[root@centos7 ~]# df |tr -s ' ' ':' |cut -d: -f5 |tr -d '%'
已用
2
0
0
2
0
15
29
0

3.查出用户UID最大值的用户名、UID及shell类型

[root@centos7 ~]# getent 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/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:997:995:User for polkitd:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
colord:x:996:994:User for colord:/var/lib/colord:/sbin/nologin
libstoragemgmt:x:995:992:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
setroubleshoot:x:994:991::/var/lib/setroubleshoot:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
chrony:x:993:990::/var/lib/chrony:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
geoclue:x:992:989:User for geoclue:/var/lib/geoclue:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
mageedu:x:1000:1000:mageedu:/home/mageedu:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
nginx:x:991:986:nginx user:/var/cache/nginx:/sbin/nologin
centos:x:1001:1001:centos,110101,110110,11223:/home/centos:/bin/bash
memcached:x:990:985:Memcached daemon:/run/memcached:/sbin/nologin
zabbix:x:989:984:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
hacluster:x:189:189:cluster user:/home/hacluster:/sbin/nologin
tomcat:x:91:91:Apache Tomcat:/usr/share/tomcat:/bin/nologin
arclinux:x:1002:1002::/home/arclinux:/bin/bash

# 取出要求的字段列
[root@centos7 ~]# getent passwd |cut -d: -f1,3,7
root:0:/bin/bash
bin:1:/sbin/nologin
daemon:2:/sbin/nologin
adm:3:/sbin/nologin
lp:4:/sbin/nologin
sync:5:/bin/sync
shutdown:6:/sbin/shutdown
halt:7:/sbin/halt
mail:8:/sbin/nologin
operator:11:/sbin/nologin
games:12:/sbin/nologin
ftp:14:/sbin/nologin
nobody:99:/sbin/nologin
avahi-autoipd:170:/sbin/nologin
systemd-bus-proxy:999:/sbin/nologin
systemd-network:998:/sbin/nologin
dbus:81:/sbin/nologin
polkitd:997:/sbin/nologin
abrt:173:/sbin/nologin
colord:996:/sbin/nologin
libstoragemgmt:995:/sbin/nologin
setroubleshoot:994:/sbin/nologin
rpc:32:/sbin/nologin
rtkit:172:/sbin/nologin
chrony:993:/sbin/nologin
tss:59:/sbin/nologin
geoclue:992:/sbin/nologin
usbmuxd:113:/sbin/nologin
mysql:27:/sbin/nologin
pulse:171:/sbin/nologin
gdm:42:/sbin/nologin
rpcuser:29:/sbin/nologin
nfsnobody:65534:/sbin/nologin
postfix:89:/sbin/nologin
sshd:74:/sbin/nologin
ntp:38:/sbin/nologin
tcpdump:72:/sbin/nologin
mageedu:1000:/bin/bash
apache:48:/sbin/nologin
nginx:991:/sbin/nologin
centos:1001:/bin/bash
memcached:990:/sbin/nologin
zabbix:989:/sbin/nologin
hacluster:189:/sbin/nologin
tomcat:91:/bin/nologin
arclinux:1002:/bin/bash

# 以":"为分隔符,第二个字段,进行数值大小排序
[root@centos7 ~]# getent passwd |cut -d: -f1,3,7 |sort -t: -k2n
root:0:/bin/bash
bin:1:/sbin/nologin
daemon:2:/sbin/nologin
adm:3:/sbin/nologin
lp:4:/sbin/nologin
sync:5:/bin/sync
shutdown:6:/sbin/shutdown
halt:7:/sbin/halt
mail:8:/sbin/nologin
operator:11:/sbin/nologin
games:12:/sbin/nologin
ftp:14:/sbin/nologin
mysql:27:/sbin/nologin
rpcuser:29:/sbin/nologin
rpc:32:/sbin/nologin
ntp:38:/sbin/nologin
gdm:42:/sbin/nologin
apache:48:/sbin/nologin
tss:59:/sbin/nologin
tcpdump:72:/sbin/nologin
sshd:74:/sbin/nologin
dbus:81:/sbin/nologin
postfix:89:/sbin/nologin
tomcat:91:/bin/nologin
nobody:99:/sbin/nologin
usbmuxd:113:/sbin/nologin
avahi-autoipd:170:/sbin/nologin
pulse:171:/sbin/nologin
rtkit:172:/sbin/nologin
abrt:173:/sbin/nologin
hacluster:189:/sbin/nologin
zabbix:989:/sbin/nologin
memcached:990:/sbin/nologin
nginx:991:/sbin/nologin
geoclue:992:/sbin/nologin
chrony:993:/sbin/nologin
setroubleshoot:994:/sbin/nologin
libstoragemgmt:995:/sbin/nologin
colord:996:/sbin/nologin
polkitd:997:/sbin/nologin
systemd-network:998:/sbin/nologin
systemd-bus-proxy:999:/sbin/nologin
mageedu:1000:/bin/bash
centos:1001:/bin/bash
arclinux:1002:/bin/bash
nfsnobody:65534:/sbin/nologin

# 去最后一行
[root@centos7 ~]# getent passwd |cut -d: -f1,3,7 |sort -t: -k2n |tail -1
nfsnobody:65534:/sbin/nologin

4.查出/tmp的权限,以数字方式显示

[root@CentOS6 ~]# stat /tmp
  File: `/tmp'
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d	Inode: 1048577     Links: 6
Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-02-12 09:19:45.983655283 +0800
Modify: 2017-02-12 09:37:35.312654459 +0800
Change: 2017-02-12 09:37:35.312654459 +0800

[root@CentOS6 ~]# stat /tmp |head -4 |tail -1
Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)

[root@CentOS6 ~]# stat /tmp |head -4 |tail -1 |cut -d: -f2
 (1777/drwxrwxrwt)  Uid

# 删除除了数字外的其他字符(即其补集)
[root@CentOS6 ~]# stat /tmp |head -4 |tail -1 |cut -d: -f2 |tr -cd '[:digit:]'
1777

5.统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序

wKioL1enK7vDZoanAABMRc_QO0k746.png