____通配符和正则表达式

此处的定义只针对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

bash coding to changeNames的更多相关文章

  1. bash编程之多分支if 语句及for循环

    第十七章.bash编程之多分支if 语句及for循环 if语句三种格式 多分支if语句练习 for循环 17.1.if语句的三种格式 单分支if语句 if condition;then 条件为真执行的 ...

  2. ./g1.sh q w e r 5个参数 bash命令 获取 命令实际的参数 shell文件名称$0 第一个参数$1第2个参数$2 最后一个参数$#;参数个数$#个;所有的参数列出来$* 返回值$? 正确0 失败1

    # ./g1.sh q w e r t./g1.sh q w e r5个参数number is q w e r t[root@localhost get]# cat g1.sh#!/bin/bash# ...

  3. Linux进程管理及while循环

    目录 进程的相关概念 进程查看及管理工具的使用 Linux系统作业控制 调整进程优先级 网络客户端工具 bash之while循环 20.1.进程类型 守护进程 daemon,在系统引导过程中启动的进程 ...

  4. 使用python脚本实现基于指定字符串的文本排序

    朋友用ansible导出了一个文件,文件中包含上千台机器的磁盘信息,他想要知道哪些机器最需要赶紧扩磁盘.思路是,按剩余磁盘空间百分数,从小到大对文本内容重新排序.下面是具体实现. 源文件ip.txt的 ...

  5. linux 小技巧总结

    (1)linux判断文件是否存在 if [ -f filename]: then       ......#要执行的语句 fi 具体例子: file=/usr/local/oracle/oradata ...

  6. 【实习记】2014-09-01从复杂到简单:一行命令区间查重+长整型在awk中的bug

        9月1号,导出sql文件后,想到了awk,但很复杂.想到了用sed前期处理+python排序比较的区间查重法.编写加调试用了约3小时. 9月2号,编写C代码的sql语句过程中,发现排序可以交m ...

  7. 【supervisord】部署单进程服务的利器

    最近听了一场分享,里边同事介绍了一些python开发环境常用到的几种工具,其中之一就supervisord,分享后自己做了些功课,概括一下supervisord是一个什么东西呢 1. 它是一个独立的常 ...

  8. Linux实战教学笔记17:精简shell基础

    第十七节 精简shell基础 标签(空格分隔): Linux实战教学笔记 1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, ...

  9. ubuntu16.04 程序开机自启动设置及启动优化

    使用过程中,为了方便使用,有一些程序需要开机时自启动应用,下面将介绍一下ubuntu16.04下程序的开机自启动设置方法. 1  建立一个可执行程序的运行脚本如 keepalive.sh.内部写入要执 ...

随机推荐

  1. ruby 中%Q %q %W %w %x %r %s的用法

    %Q 用于替代双引号的字符串. 当你需要在字符串里放入很多引号时候, 可以直接用下面方法而不需要在引号前逐个添加反斜杠 (\") >> %Q(Joe said: "Fr ...

  2. 打造H5里的“3D全景漫游”秘籍

    近来风生水起的VR虚拟现实技术,抽空想起年初完成的“星球计划”项目,总结篇文章与各位分享一下制作基于Html5的3D全景漫游秘籍. QQ物联与深圳市天文台合作,在手Q“发现新设备”-“公共设备”里,连 ...

  3. System.Data.EntityState”在未被引用的程序集中定义

    类型“System.Data.EntityState”在未被引用的程序集中定义.必须添加对程序集“System.Data.Entity, Version=4.0.0.0, Culture=neu 错误 ...

  4. 重写类的Equals以及重写Linq下的Distinct方法

    当自定义一个类的时候,如果需要用到对比的功能,可以自己重写Equals方法,最整洁的方法是重写GetHashCode()方法. 但是,这个方法只适用于对象自身的对比(如if(a==b))以及字典下的C ...

  5. LCA

    2016.1.28 LCA,就是最近公共祖先,这里介绍倍增的算法. 首先我们要预处理,设f[i][j]为编号为i的节点的2j级祖先,所谓2j级祖先,就是从i节点开始往树的上层数2j个节点.如下图所示 ...

  6. (链接)打印相关_.NET打印小资料

    掌握.NET中的日常打印:包括各个类的参数等 http://blog.csdn.net/dzweather/article/details/10171105 设置纸张大小 PrintDocument ...

  7. ios 逆向收录

    lldb 远程调试环境搭建:http://www.cnblogs.com/csutanyu/p/3653252.html

  8. html基础 样式

    html样式:本文演示如何在head中添加样式信息使文本格式化 <html> <head> <style type="Text/css"> h1 ...

  9. JSON http://www.cnblogs.com/haippy/archive/2012/05/20/2509329.html

    js: JSON.stringify(idinfo)//将对象转化为 JSON串 //查询后为将json串赋值给表单 function _form1_load() {            AOS.a ...

  10. 解决java文件编码和windows7系统(中文版)默认编码冲突所导致的乱码情况

    开篇从一个比较简单但是也比较蛋疼的问题开始吧. 背景介绍:我是新手小白,初学java. 问题介绍:在使用UTF-8编码格式写java文件时,编译出现问题. 原因分析:1.java文件的编码格式是UTF ...