8月5日文本处理工具作业

分析文本工具相关练习题

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

  ~]# ifconfig|tr -cs '[0-9].' '\n'|sort -ut '.' -k3

    255.255.0.0
    127.0.0.1
    10.1.249.36
    10.1.255.255

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

    ~]# df -h    
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/vg0-root   20G  6.1G   13G  33% /
    tmpfs                 491M     0  491M   0% /dev/shm
    /dev/sda1             190M   34M  147M  19% /boot
    /dev/mapper/vg0-usr   9.8G  2.1G  7.2G  23% /usr
    /dev/mapper/vg0-var    20G  122M   19G   1% /var
     ~]# df -h|tr -s ' '|cut -d ' ' -f 5|sort -n|tail -1
    33%

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

     ~]# cat /etc/passwd|sort -t: -k3 -n|tail -1|cut -d: -f 1,3,7        
      nfsnobody:65534:/sbin/nologin

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

     ~]# stat /tmp|head -4|tail -1|cut -d'(' -f2|cut -d '/' -f1        
      1777

5 、统计当前连接本机的每个远程主机IP 的连接数,并按从大

到小排序

      ~]# netstat -nt |tr -s ' '|cut -d' ' -f 5|sort -n|uniq -c
      1 Address
      1 servers)
      1 10.1.250.58:56102

grep相关练习题

1、显示/proc/meminfo文件中以大小s开头的行;(要求:使用两种方式)

 1.   ~]# grep -i "^S" /proc/meminfo
    SwapCached:            0 kB
    SwapTotal:       2097148 kB
    SwapFree:        2097148 kB
    Shmem:               236 kB
    Slab:              76832 kB
    SReclaimable:      50940 kB
    SUnreclaim:        25892 kB
2.   ~]# grep  "^[sS]" /proc/meminfo
    SwapCached:            0 kB
    SwapTotal:       2097148 kB
    SwapFree:        2097148 kB
    Shmem:               236 kB
    Slab:              76792 kB
    SReclaimable:      50944 kB
    SUnreclaim:        25848 kB
 3.~]# egrep "^(s|S)" /proc/meminfo
    SwapCached:            0 kB
    SwapTotal:       2097148 kB
    SwapFree:        2097148 kB
    Shmem:               236 kB
    Slab:              76800 kB
    SReclaimable:      50944 kB
    SUnreclaim:        25856 kB

2、显示/etc/passwd文件中不以/bin/bash结尾的行

         ~]# cat /etc/passwd|grep -v "/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

3、显示用户rpc默认的shell程序

        ~]# cat /etc/passwd|grep 'rpc\>' |cut -d: -f7
        /sbin/nologin

4、找出/etc/passwd中的两位或三位数

      ~]#cat /etc/passwd|grep '\b[1-9][0-9]\{1,2\}\b'    
      ~]# cat /etc/passwd|grep "\b[0-9][0-9][0-9]\?\b"

5、显示/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面存非空白字符的行

      ~]# cat /etc/grub2.cfg |grep "^[[:space:]]\+[^[:space:]]\+"

6、找出“netstat -tan”命令的结果中以‘LISTEN’后跟任意多个空白字符结尾的行

     ~]# netstat -tan|grep "LISTEN[[:space:]]*$"

7、添加用户bash、testbash、basher以及nologin(其shell为/sbin/nologin),而后找出/etc/passwd文件中用户名同shell名的行

    ~]# cat /etc/passwd|grep "^\([[:alnum:]]\+\):.*\1$"    
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    bash:x:1003:1005::/home/bash:/bin/bash
    nologin:x:1006:1008::/home/nologin:/sbin/nologin
    ash:x:1007:1009::/home/ash:/bin/bash

egrep相关练习题

1、显示三个用户root、mage、wang的UID和默认shell

     ~]# cat /etc/passwd|egrep "^(mage|wang|root)" |cut -d : -f 3,7    
    0:/bin/bash
    503:/bin/bash
    509:/bin/bash

2、找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行

     ~]# cat /etc/rc.d/init.d/functions|egrep "^[[:alpha:]_]+\(\)"    
    checkpid() {
    __pids_var_run() {
    __pids_pidof() {
    daemon() {
    killproc() {

3、使用egrep取出/etc/rc.d/init.d/functions中其基名

    ~]# ls -l /etc/rc.d/init.d/functions |egrep -o "[^/]+/?$"    
    functions

4、使用egrep取出上面路径的目录名

     ls -l /etc/init.d/functions |egrep -o "(/.*/)"

5、统计以root身份登录的每个远程主机IP地址的登录次数

last | grep -E -o "^root\>.*([[:digit:]]\.){3}[[:digit:]]" |tr -s '' | cut -d' ' -f3 | sort | uniq -c

6、利用扩展正则表达式分别表示0-9、10-99、100-199、200-249、250-255

    0-9:[0-9] ; 10-99 :[1-9][0-9];100-199:1[0-9]{2};200-249:2[0-4][0-9];25[0-5]

7、显示ifconfig命令结果中所有IPv4地址

     ~]# ifconfig|egrep -o  "(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])"    
    10.1.249.36
    10.1.255.255
    255.255.0.0
    127.0.0.1
    255.0.0.0

    

课后作业

1、取各分区利用率的数值

    ~]# df -h|egrep "/dev/sd" |tr -s ' '|cut -d' ' -f 5|tr -d %    
    37
    13
    29

2、统计/etc/init.d/functions 文件中每个单词出现的次数,并按频率从高到低显示

    ~]# cat /etc/init.d/functions |tr '[[:punct:]]' '\n'|tr '[[:digit:]]' '\n'|tr -s '[[:space:]]' |sort|uniq -c|sort -t' ' -k1 -rn

3、正则表达式表示身份证号

        ~]# cat test |egrep "\b[0-9]{15}\b|\b[0-9]{18}\b|\b[0-9]{17}[xX]\b"
	
	32454648456545455x
	54654465464654644X
	215451412152412

4、正则表达式表示手机号

    cat f1 | egrep "\b1[34578][0-9]{9}\b"

5、正则表达式表示邮箱

    ~]# cat test| egrep "\b[[:alnum:]_-]+@[[:alnum:]]+.(com|cn)\b"

6、正则表达式表示QQ号

    ~]# cat f1 |egrep "\b[1-9][0-9]{5,9}\b"    
    564654
    1546562
    457896541

原创文章,作者:提着酱油瓶打醋,如若转载,请注明出处:http://www.178linux.com/29984

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code