Linux实战指令

实战一

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

          脚本实现

                          #!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  {} \;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值