bash coding to changeNames
____通配符和正则表达式
此处的定义只针对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的更多相关文章
- bash编程之多分支if 语句及for循环
第十七章.bash编程之多分支if 语句及for循环 if语句三种格式 多分支if语句练习 for循环 17.1.if语句的三种格式 单分支if语句 if condition;then 条件为真执行的 ...
- ./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# ...
- Linux进程管理及while循环
目录 进程的相关概念 进程查看及管理工具的使用 Linux系统作业控制 调整进程优先级 网络客户端工具 bash之while循环 20.1.进程类型 守护进程 daemon,在系统引导过程中启动的进程 ...
- 使用python脚本实现基于指定字符串的文本排序
朋友用ansible导出了一个文件,文件中包含上千台机器的磁盘信息,他想要知道哪些机器最需要赶紧扩磁盘.思路是,按剩余磁盘空间百分数,从小到大对文本内容重新排序.下面是具体实现. 源文件ip.txt的 ...
- linux 小技巧总结
(1)linux判断文件是否存在 if [ -f filename]: then ......#要执行的语句 fi 具体例子: file=/usr/local/oracle/oradata ...
- 【实习记】2014-09-01从复杂到简单:一行命令区间查重+长整型在awk中的bug
9月1号,导出sql文件后,想到了awk,但很复杂.想到了用sed前期处理+python排序比较的区间查重法.编写加调试用了约3小时. 9月2号,编写C代码的sql语句过程中,发现排序可以交m ...
- 【supervisord】部署单进程服务的利器
最近听了一场分享,里边同事介绍了一些python开发环境常用到的几种工具,其中之一就supervisord,分享后自己做了些功课,概括一下supervisord是一个什么东西呢 1. 它是一个独立的常 ...
- Linux实战教学笔记17:精简shell基础
第十七节 精简shell基础 标签(空格分隔): Linux实战教学笔记 1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, ...
- ubuntu16.04 程序开机自启动设置及启动优化
使用过程中,为了方便使用,有一些程序需要开机时自启动应用,下面将介绍一下ubuntu16.04下程序的开机自启动设置方法. 1 建立一个可执行程序的运行脚本如 keepalive.sh.内部写入要执 ...
随机推荐
- 解决YII提交POST表单出现400错误,以及ajax post请求时出现400问题
POST表单400错误: 正确做法: Add this in the head section of your layout: <?= Html::csrfMetaTags() ?> -- ...
- 黄聪:HtmlAgilityPack中SelectSingleNode的XPath和CSS选择器
XPath和CSS选择器 原文:http://ejohn.org/blog/xpath-css-selectors 最近,我做了很多工作来实现一个同时支持XPath和CSS 3的解析器,令我惊讶的是: ...
- Spark Shuffle数据处理过程与部分调优(源码阅读七)
shuffle...相当重要,为什么咩,因为shuffle的性能优劣直接决定了整个计算引擎的性能和吞吐量.相比于Hadoop的MapReduce,可以看到Spark提供多种计算结果处理方式,对shuf ...
- 怎么打开sql server 数据库日志文件
To Open Log File Viewer, 1. Expand Server Node > 2. Expand SQL Server Agent > 3. Expand Jobs & ...
- .net mvc中json的时间格式
.net mvc中,通过return Json(DateTime.Now); 返回到视图时,日期格式变成这样,"/Date(1245398693390)/",如果要显示指定的日期时 ...
- iOS开发之CocoaPods的使用
你开发iOS的方式还是石器时代吗?在这个世界上并不是所有的软件开发人员都是码农.在这个世界上有很多的geek存在他们为这个语言的发展做出了很大的贡献.现在随着iOS开发者的曾多也就出现了iOS程序猿提 ...
- eclispe 无法启动调试 cannot connect to VM
eclispe中,点击调试运行java项目,出现 cannot connect to VM 正常的运行项目,没问题: 以为是jdk的安装路径等的问题,还有杀毒软件等等,都没有正常: 后来找到是wins ...
- CRLF和LF
协作项目,开发环境不同(mac,window)构建过程中,命令行报错(expecting LF but only find CRLF) 打开git bash,输入 $ git config --glo ...
- 根据不同分辨率加载不同 css 样芪表
<script language=javascript> <!-- if (screen.width == 800) { document.write('<link rel=s ...
- strace 解决库依赖问题
解决库依赖问题 starce 的另一个用处是解决和动态库相关的问题.当对一个可执行文件运行ldd时,它会告诉你程序使用的动态库和找到动态库的位置.但是如果你正在使用一个比较老 的glibc版本(2.2 ...