• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Shell中正则表达式及sed和awk常见问题

    1 正则表达式中的+、?、*分别表示什么含义?

    这三个字符用来限制关键词的匹配次数,含义分别如下:

    2 如何编写正则表达式匹配11位的手机号?

    准备测试文件:
    [root@svr5 ~]# cat tel.txt 
    01012315
    137012345678
    13401234567
    10086
    18966677788
    提取包含11位手机号的行:
    [root@svr5 ~]# egrep '^1[0-9]{10}$' tel.txt 
    13401234567
    18966677788
    

    3 简述sed定址符的作用及表示方式。

    作用:地址符(执行指令的条件)控制sed需要处理文本的范围;不加定址符则逐行处理所有行
    表示方式:地址符可以使用行号或正则表达式

    4 如何使用sed提取文本中的偶数行?

    查看测试文本:

    [root@svr5 ~]# cat -n /etc/rc.local 
         1  #!/bin/sh
         2  #
         3  # This script will be executed *after* all the other init scripts.
         4  # You can put your own initialization stuff in here if you don't
         5  # want to do the full Sys V style init stuff.
         6
         7  touch /var/lock/subsys/local
    

    提取偶数行的操作及效果:

    [root@svr5 ~]# cat -n /etc/rc.local | sed -n '2~2p'
         2  #
         4  # You can put your own initialization stuff in here if you don't
         6
    

    5 如何使用sed删除文本中每行的第4个字符?

    查看测试文本:

    [root@svr5 ~]# cat /etc/rc.local 
    #!/bin/sh
    #
    # This script will be executed *after* all the other init scripts.
    # You can put your own initialization stuff in here if you don't
    # want to do the full Sys V style init stuff.
    touch /var/lock/subsys/local
    

    删除每行第4个字符的操作及效果:

    [root@svr5 ~]# cat /etc/rc.local | sed 's/.//4'
    #!/in/sh
    #
    # Tis script will be executed *after* all the other init scripts.
    # Yu can put your own initialization stuff in here if you don't
    # wnt to do the full Sys V style init stuff.
    touh /var/lock/subsys/local
    

    6 提取/etc/passwd文件的第6-10行,另存为pass5.txt文件。

    提取或导出文本:

    [root@svr5 ~]# sed -n '6,10p' /etc/passwd > pass5.txt
    

    确认提取结果:

    [root@svr5 ~]# cat pass5.txt 
    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
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    

    7 简述awk工具的基本语法格式。

    格式1: awk [选项] ‘[条件]{处理动作}' 文件列表
    格式2: 命令 | awk [选项] ‘[条件]{处理动作}'

    8 简述awk工具常用的内置变量、各自的作用。

    9 awk处理文本时,读文件前、读取文件内容中、读文件后后这三个环节是如何表示的?

    10 提取当前eth0网卡的IPv4地址及掩码信息。

    查看测试文本:

    [root@svr5 ~]# ip add list eth0
    2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:64:88:8e brd ff:ff:ff:ff:ff:ff
        inet 192.168.4.55/24 brd 192.168.4.255 scope global eth0
        inet 192.168.4.5/24 brd 192.168.4.255 scope global secondary eth0
        inet6 fe80::20c:29ff:fe64:888e/64 scope link 
           valid_lft forever preferred_lft forever
    

    提取IPv4地址及掩码信息的操作及效果:

    [root@svr5 ~]# ip add list eth0 | awk '/\inet\&;/{print $2}'
    192.168.4.55/24
    192.168.4.5/24
    

    11 找出UID位于10~20之间的用户,输出用户名及对应的UID。

    [root@svr5 ~]# awk -F: '$3>=10  $3=20{print $1":"$3}' /etc/passwd
    uucp:10
    operator:11
    games:12
    gopher:13
    ftp:14
    

    12 利用awk工具统计使用bash作为解释器的用户数量。

    使用NF内置变量找最后一列的内容,匹配bash即可让x+1:

    [root@svr5 ~]# awk -F/ '$NF=="bash"{x++}END{print x}' /etc/passwd
    

    13 在awk中是否可以使用数组,分别以什么构成?

    可以使用数组,分别以 数组名、下标、值 三个部分构成

    14 在linux中对文本的排序如何实现?

    使用sort命令,比如abc.txt文本
    另外还可以使用选项-n按数字升序排列 -k:针对指定的列进行排序 -r:反向排序

    [root@svr5 ~]# sort –n abc.txt
    

    到此这篇关于Shell中正则表达式及sed和awk常见问题的文章就介绍到这了,更多相关Shell正则表达式及sed和awk内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • shell脚本之正则表达式、grep、sed、awk
    • Shell正则表达式之grep、sed、awk实操笔记
    上一篇:shell批量创建文件并重新命名的实例代码
    下一篇:工作中使用Shell实用脚本
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Shell中正则表达式及sed和awk常见问题 Shell,中,正则,表达式,及,