____通配符和正则表达式

此处的定义只针对linux 中的shell语言,对其它语言不适用
_正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式。
_通配符用来匹配符合条件的文件名,通配符是完全匹配。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配
___grep 查找文件名时必要时添加\ 转义符以取消字符所带含义。就算不想应用正则表达式,也是不可能的,因为正则表达式就是字符存在的方式。
____取变量值 $变量 或者 ${变量}。 大括号存在的意义是确定了变量名字的界限,与后面跟随的字符区分开
____变量的叠加,要用双引号把叠加的内容写在一起,上面的大括号在这里就非常需要
____用echo 调试也挺方便,就像printf一样的功能。
____for 的格式和 c 类似, 多了一对括号
____测试中括号的内侧要有空格,比较的格式,需要时查找文档
____名称或变量中带空格得要加上双引号,这一点很容易忘记。想到超老师讲如果已经存在了双引号里面就得用单引号了

____ \s 在正则表达式中代表空格,如果是简单的应用的话,我觉得直接拷贝for循环比嵌套更方便。因为nyy+p很直接

#!/bin/bash
# change all the names of the sub-folders.  for((i=;i<=;i=i+)) do         cd /home/sophie/temp         aa=$(ls  | grep "$i")         echo "$i"         mv "$aa" $i done 
   #!/bin/bash

   

   # change all the names of the sub-folders.  

   for((i=;i<=;i=i+))

   do

           cd /home/sophie/temp/

           aa=$(ls  | grep "${i}_")

           echo "$i"

           if [ -n "$aa"  ]

          then

                  mv "$aa" $i

          fi

  done                                                                                                                                             

嵌套的文件夹名称修改

#!/bin/bash 

# change all the names of the sub-folders.  

for((i=;i<=;i=i+))

do

        cd /home/sophie/temp/

        aa=$(ls  | grep "${i}")

        if [ -n "$aa"  ]

        then

                echo "$i"

                mv "$aa" "${i}"

                cd "$i"

                pwd

                for((j=;j<=;j=j+))

                do

                        bb=$(ls  | grep "\.${j}\.")

                        echo "$j"

                        if [ -n "$bb"  ]

                        then

                                mv "$bb"  "$i.${j}.wma"

                        fi

                done

        fi

done

---------

for((i=;i<=;i=i+))
do
        cd /home/sophie/temp/
        aa=$(ls  | grep "\s${i}$")
        if [ -n "$aa"  ]
        then
                echo "$i"
                mv "$aa" "${i}"                 cd "$i"
                pwd
                for((j=;j<=;j=j+))
                do
                        bb=$(ls  | grep "\s${j}\.")
                        echo "$j"
                        if [ -n "$bb"  ]
                        then
                                mv "$bb"  "$i.${j}.wma"
                        fi
                done
        fi 
done

最新文章

  1. SQL Server 2016 SP1 标准版等同企业版?!
  2. 【IOS】ios中NSUserDefault与android中的SharedPreference用法简单对比
  3. 关于js的string的3个函数slice,substring,substr对比
  4. SGU 170 Particles(规律题)
  5. IOS把文件保存进沙盒目录
  6. SQL2008-删除时间字段重复的方法
  7. Vi、Vim及Gedit编辑器
  8. Java多线程--同步函数
  9. page-object使用(1)
  10. 解决Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead
  11. CSS学习(页外引用还不懂)
  12. 手动修复IAT
  13. 2018年最新JAVA面试题总结之基础(1)
  14. 远程dump导出svn项目
  15. Windows下Redis安装过程
  16. js基础知识:字面量 关键字和保留字
  17. 用户认证--------------auth模块
  18. pandas 基本操作
  19. 【Java深入研究】6、CGLib动态代理机制详解
  20. 外部函数/external

热门文章

  1. GBDT算法原理深入解析
  2. rsync命令详解
  3. Eclipse调试时附加匹配版本的JAR包源码:Edit Source Loopup
  4. Windows消息机制详解
  5. 拥抱高效、拥抱 Bugtags 之来自用户的声音(三)
  6. terminator 安装及使用
  7. 个人JS零碎知识整理
  8. Elasticsearch初探
  9. Spring3.1新特性(转)
  10. linux默认编辑器 sublime