批量重命名脚本

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux shell代码

1.#!/bin/bash

2.# Rename_AllChildrenDirectories.sh

3.# 问题描述:

4.# 某目录及其子目录中出现一些以“;1”结尾的文本文件名,编写shell脚本,

5.# 以去除这个目录及其子目录中所有该类文件名中结尾部分的“;1”。

6.

7.# COUNT用于计数,错误输入的情况下,默认为允许3次尝试。

8.COUNT=0

9.while [ $COUNT -lt 3]

10.do

11.echo "请输入要重命名的文件所在父目录的路径:"

12.read PATH

13.

14.if [ -d $PATH ]

15.then

16.cd $PATH

17.# NUM代表符合条件的、可重命名的文件数。

18.NUM=`/usr/bin/find $PATH -type f|/bin/grep .*\;1$|/usr/bin/wc -

l`

19.echo "在这个目录及其子目录中需要重命名的文件有:$NUM 个"

20.

21.# 如果NUM为0,说明无需重命名操作,退出。

22.if [ $NUM -eq 0]

23.then

24.echo "无需重命名,退出。"

25.exit

26.fi

27.

28.# 列出符合条件的、要重命名的文件,并进行重命名操作。

29.for loop in `/usr/bin/find $PATH -type f|/bin/grep .*\;1$|/us

r/bin/sort`

30.do

31.echo $loop

32.# 进行重命名操作,错误信息输出到/tmp目录下以该程序名开头的

“_error.log”文件中

33./bin/mv $loop `echo -n $loop | /bin/sed 's/\;1//'` 2

>/tmp/`/usr/bin/basename $0`_error.log

34.done

35.

36.echo "重命名完成!"

37.

38.TOTAL=`/usr/bin/find $PATH -type f|/usr/bin/wc -l`

39.echo "在这个目录及其子目录中的普通文件有:$TOTAL 个"

40./usr/bin/find $PATH -type f|/usr/bin/sort

41.

42.exit

43.else # 输入的路径并非代表目录。

44.if (($COUNT<2))

45.then

46.echo "输入的路径错误,请确认后输入。"

47.else

48.echo "尝试次数过多,退出。"

49.fi

50.fi

51.

52.# 计数器COUNT加1。

53.COUNT=$[$COUNT+1]

54.done

相关文档
最新文档