• 30题之第二题


    19.1.2 企业Shell面试题2:批量改名特殊案例

    将以上面试题19.1.1中结果文件名中的oldboy字符串全部改成oldgirl(最好用for循环实现),并且将扩展名html全部改成大写。

    rename oldboy.html   oldgirl.HTLM   *_oldboy.html

    [root@jenkins scripts]# ls
    2.sh                    daargnrenb_oldboy.html  expect_test.sh          mqqbylcynk_oldboy.html  test1_2.sh              tt.sh
    3.sh                    eqtaoyqljo_oldboy.html  hjnovpxobc_oldboy.html  qxtacetuas_oldboy.html  test1.sh                vfrmwfbyqq_oldboy.html
    cdfkdshngs_oldboy.html  expect2_test.sh         kpgmywjidh_oldboy.html  test                    tgpmpmufdv_oldboy.html  yneepywxaw_oldboy.html
    [root@jenkins scripts]# rename oldboy.html   oldgirl.HTLM   *_oldboy.html

    [root@jenkins scripts]# ls
    2.sh                     daargnrenb_oldgirl.HTLM  expect_test.sh           mqqbylcynk_oldgirl.HTLM  test1_2.sh               tt.sh
    3.sh                     eqtaoyqljo_oldgirl.HTLM  hjnovpxobc_oldgirl.HTLM  qxtacetuas_oldgirl.HTLM  test1.sh                 vfrmwfbyqq_oldgirl.HTLM
    cdfkdshngs_oldgirl.HTLM  expect2_test.sh          kpgmywjidh_oldgirl.HTLM  test                     tgpmpmufdv_oldgirl.HTLM  yneepywxaw_oldgirl.HTLM

    上面是rename的方法一

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

    #!/bin/bash
    dir=/oldboy/
    for n in `find $dir -type f -name "*oldboy.html"`
    do
       mv $n ${n//oldboy.html/oldgirl.HTML}
    done

    方法二:

    [root@jenkins scripts]# cat 2.sh 
    #!/bin/bash
    ##############################################################
    # File Name: 2.sh
    # Version: V1.0
    # Author: gaobo
    # Organization: 641627690@qq.com
    # Created Time : 2017-12-04 21:56:38
    # Description:
    ##############################################################
    
    for i in `ls *_oldgirl.HTLM`
    
    do
    
    echo $i|sed -rn "s#(.*_)oldgirl.HTLM# mv &  1oldboy.html#gp"|bash
    
    done

    [root@jenkins scripts]# sh 2.sh
     mv cdfkdshngs_oldgirl.HTLM  cdfkdshngs_oldboy.html
     mv daargnrenb_oldgirl.HTLM  daargnrenb_oldboy.html
     mv eqtaoyqljo_oldgirl.HTLM  eqtaoyqljo_oldboy.html

    [ ! -d /oldboy ] && mkdir -p /oldboy
    cd /oldboy
    
    for i in `seq 10`
     do
     suiji=`tr -dc "a-z" </dev/urandom|head -c10`
     touch ${suiji}_oldboy.html
     done
    ls -l /oldboy
    
    
    
    
    
    #!/bin/bash
    
    dir=/oldboy
    [ -d $dir ] || mkdir -p $dir
    cd $dir
    for i in {1..10}
      do
        Mz=`uuidgen |tr '0-9-' 'a-z'|cut -c -10`
        touch ${Mz}_oldboy.txt
    done
  • 相关阅读:
    基于NS2的差分服务网络测试(含awk分析代码)
    ubuntu14下NSG2的安装和使用
    (转)QOS入门详解
    gnuplot安装的小问题
    中介者模式(Mediator)_java实现
    命令模式(Command)_java实现
    观察者模式(Observer)_java实现
    策略模式(Strategy)_java实现
    状态模式(State)_java实现
    备忘录模式(Memento)_java实现
  • 原文地址:https://www.cnblogs.com/gaoyuechen/p/7979187.html
Copyright © 2020-2023  润新知