51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1385|回复: 0
打印 上一主题 下一主题

Linux实战指令

[复制链接]
  • TA的每日心情
    无聊
    2024-3-7 09:16
  • 签到天数: 43 天

    连续签到: 2 天

    [LV.5]测试团长

    跳转到指定楼层
    1#
    发表于 2018-6-15 15:07:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    实战一

    要求:将某文件夹及其子文件中所有 readme.txt 的文件找出来,统计文件中包括name,age,base addre
    ss等字段信息。(因为存在重名冲突,因此需要在抓取的过程中编号来修改其名称)

    脚本实现:

    #!bin/bash
    Count=1
    for line in $( find -name readme.txt )
    do
        echo "find  ${line}"
        name0=$(printf "%05d" $Count)
        name=${name0:0:5}
        echo $name
        cp ${line}  "readme"$name".txtnew"  
        (( Count=Count+1))
        echo $Count "Rename OK"
    done

    脚本释义:
    第一句表示由bin路径下的bash解释器来解释该脚本,第二句定义count变量,第三句for循环,括号内是
    查找搜索语句,$()表示执行括号内的语句,并把返回值保存,以供查找。第三四do,第五句打印line的
    值,第六句 %05d 表示至少输出5位数字,取count的值赋给name0,第七句name=${name0:0:5},将
    name0从左到右的0~5位数据赋值给name(列如name0数据为123456,那么name被赋值为12345,没
    有6),第八句打印name;第九句重命名;第十句自增,等同于Count=$(( Count+1)) 或者 let Count+
    +(Count和++之间不能有空格);第十一句打印;十二句结束。
    注意:语法结构:for ,do ,done;类似的还有while ,do ,done。
    参考博客:

    Linux中` `、$、$( ) 、${ } 有什么区别
    shell 按规则批量重命名文件

    语句实现:find -name *.txtnew -exec grep -e name -e age -e "base address" {}  >ok.txt \;

    语句释义:查找所有以.txtnew结尾的文件,-exec 后面跟执行语句,语句以"\;"结束,{}表示前面find出
    来的值,当值存在或者为真时,执行-exec后面的指令;grep 在文件内容上抓取关键词,多个关键词使用
    -e 连接;>表示将指令执行结果转存为ok.txt。


    实战二

    要求:不小心将压缩包解压在当前文件夹,导致目录很乱,需要删除解压出来的文件。

    脚本实现:

    mkdir tmp
    tar xvf *.tar -C tmp
    rm -rf $(ls tmp)  (加上-r-f可以不用每次询问)

    脚本释义:第一句创建文件夹;第二句将tar包压缩到指定目录tmp;第三句删除tmp中ls列出来的所有文件。



    实战三

    要求:查看文件大小

    语句实现:du -h  --max-depth=4 文件名/

    语句释义:展示最大深度为4的文件及大小,--max-depth=4最大深度为4;



    实战四

    要求:将目标文件夹的windows文件全部转换为unix系统的文件。

    语句实现:find -iname  "*"  -exec dos2unix  {} \;

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-20 19:49 , Processed in 0.069669 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表