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

(0)
提着酱油瓶打醋提着酱油瓶打醋
上一篇 2016-08-05 21:42
下一篇 2016-08-06 17:05

相关推荐

  • N25-第六周作业

    第6周作业 — 请详细总结vim编辑器的使用并完成以下练习题 vim是模式化的全屏文本编辑器。vim分为三种模式:分别是编辑模式;输入模式;末行模式; 打开文件的方式有:vim +# FILE打开文件FILE并把光标定位到#行的行首;vim +/PATTERN FILE打开文件并让光标处于第一个被PATTERN匹配到的行的行首。(支持正则表达式)…

    Linux干货 2017-02-22
  • 关于源码包的基本知识

    关于源码包的基本知识  §·什么是程序 程序(Program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。为实现预期目的而进行操作的一系列语句和指令。 一般分为系统程序和应用程序两大类。 程序就是为使电子计算机执行一个或多个操作,或执行某一任务,按序设计的计算机指令的集合。 §·程序包的编译安装 ※·为什么需要源码安装 1.最…

    Linux干货 2016-08-24
  • 文件系统管理_设定文件系统的配额

    认识配置配额系统 :为控制用户使用的空间的大小,在linux可以实现对分区的大小控制,控制用户在这个分区内使用空间的大小同时还可以对用户的文件个数实现控制。 在linux系统中其遵循文件分区来实现控制 磁盘的配额只针对单个分区来实现控制,不能对单块磁盘(硬盘)来实现控制的 【搭建试验环境 1】 怎样把某一个文件夹(/home)单独放到(迁移)一个独立的分区中…

    Linux干货 2017-04-24
  • php 设计模式-数据映射模式(应用程序与数据库交互模式)

    前面提到的设计模式大大提高了代码的可读性与可维护性。然而,在WEB应用设计与开发中一个基本的需求与挑战:数据库应用,这些设计模式都没有涉及到。数据映射模式使您能更好的组织你的应用程序与数据库进行交互。 下面我将用实际代码说明,如果一个表发生变动。我们要修改客户端代码就可以了。特别是游戏项目,需求经常可能会经常变动。修改表结构,可能引起大片代码的改动。 首先我…

    Linux干货 2015-04-07
  • 单引号,双引号,反引号的作用(首篇)

    哈哈哈!这是我的博客生涯的开始,也是我学习Linux的开始,所以我将励志成为一名老司机带你装X带你飞。 1.首先是三兄弟中的单引号,它的作用只是单纯的呈现出自己所包含的文字并不能执行其中的命令,所以它也是三兄弟中最笨的那个,作用单一,简单。 2,再来介绍介绍双引号,他的作用和单引号大同小异,它能包含单引号,反引号,以及除了执行以$和\的字符为首的函数能认识之…

    2017-07-11
  • 循环语句for、while、until

    作用:    循环语句的作用是它可以让一段代码重复的执行,直到所需条件不满足为止。 在linux中变量的赋值方式有三种:       第一:直接等于号赋值       第二:通过read交互赋值       第三:for循环的赋值 bash脚本中的循…

    Linux干货 2016-08-22