美文网首页Linux试题 总集转载部分文本处理(grep, sed和awk等)
【测试题三剑客】过滤,替换,取列操作 grep sed awk

【测试题三剑客】过滤,替换,取列操作 grep sed awk

作者: Linux丶晨星 | 来源:发表于2019-04-21 16:34 被阅读59次

    查找文件中1到6行之间,同时将"aaaa"替换为"AAAA","ddddd"替换"DDDDD"


    用-e参数来执行多条命令,n要放到参数e的前面
    变形:y命令

    11找出/alex目录下以.txt结尾,修改实际是180天之前的,大于100k并小于10M的文件(3分)

    find /tmp/ -type f -size +100k -mtime +180 -name '*.txt'| find -size -1M 
    

    12找出/oldboy目录下以.log结尾的文件并把文件中的oldboy替换为oldgirl(至少2种方法) (5分)

    find /oldboy/ -type f -name '*.log'|sed 's#oldboy#oldgirl#g'
    
    grep 'oldboy' `find /tmp/ -type f -name '*.txt'`|sed 's#oldboy#oldgirl#g'
    

    13找出/oldboy下面以.conf结尾的文件打包备份到/tmp/下面(2种方法)(5分)

    tar /tmp/a.tar.gz `find / -type f -name '*.conf'`
    

    14筛选出/etc/ssh/sshd.config文件中不是以#和D开头的行(3分)

    egrep '^#|^D' /etc/ssh/sshd.config
    

    15查找出/etc/目录下以.txt结尾的,修改时间在最近三天的,内容中带有“PORT”的文件(3分)

    grep -l  'oldboy' `find /etc/ /tmp/ -type f  -name '*.txt'`
    

    16筛选出file文件中带有oldboy或oldgirl的行(3分)

    sed -rn '/oldboy|oldgirl/p' file
    

    17将以下字符追加到/oldboy/test.txt文件中(写出命令) (3分)

    cat >>/oldboy/test.txt<<EOF
    金 211324198705244720
    万 500224197105168312
    任 1231231231oldboy
    
    任 3oldboy
    任 lidao97303136098
    

    18筛选出/oldboy/test.txt文件中正确的身份证号(3分)

    egrep '[0-9X]{18}' /oldboy/test.txt
    

    19打印出/oldboy/test.txt文件中第2行到第4行(3分)
    sed -n '2,4p' /oldboy/test.txt

    20使用sed找出/oldboy/test.txt文件中包含oldboy的行(3分)

    sed -n '/oldboy/p' oldboy/test.txt
    
    sed  '/oldboy/d' oldboy/test.txt  \\删除包含oldboy的行
    

    21删除/oldboy/test.txt文件中的空行(3分)

    sed '/^$/d' test.txt 
    grep -v '^$' file.txt  \\过滤掉空行
    

    有一文件file.txt的内容为:

    my qq num is 49000448.$
    
    not 4900000448.
    my god ,i am not oldbey,but clsn!$
    注:$符号为文件内容
    

    23筛选出file.txt文件中所有连续的数字(3分)

    [✡root@oldboy /tmp]# egrep  '[0-9]+' 1
    my qq num is 49000448.$
    not 4900000448.
    

    24筛选出file.txt文件中所有空行,并显示行号(3分)

    grep -n '^$' file.txt 
    sed -n 's#^$##gp' file.txt   \\不显示行号
    sed -n '/^$/=' file.txt 
    

    25筛选出file.txt文件中以m开头并且以$结尾的行(3分)

    egrep '(^.*m.*$)' file.txt
    egrep '^m.*$' file.txt 
    egrep '^m|\$$' file.txt 
    sed -nr '/^m|\$$/p' file.txt 
    

    26使用sed将file.txt文件中第3行的448替换成558(3分)

    sed -n '3s#448#558#gp' file.txt
    

    27使用sed将file.txt文件中所有$删除(3分)

    sed  's#\$##g' file.txt 
    sed 's#[$]##g' file.txt 
    sed '/\$/d' file.txt 
    

    相关文章

      网友评论

        本文标题:【测试题三剑客】过滤,替换,取列操作 grep sed awk

        本文链接:https://www.haomeiwen.com/subject/qpjjgqtx.html