重命名子目录中的文件时遇到问题(有条件)[shell 脚本]
Having trouble renaming files in subdirectories (With conditions) [shell scripting]
我没有成功编写正确的代码!
我的目录是这样的
/Users/dave/yellow/shade001/light
/Users/dave/yellow/shade001/dark1
/Users/dave/yellow/shade001/dark2
...
/Users/dave/yellow/shade999/light
/Users/dave/yellow/shade999/dark1
/Users/dave/yellow/shade999/dark2
yellow目录下大约有999个shade文件夹,每个文件夹包含
2 或 3 个文件(light
始终存在,dark1
始终存在,dark2
有时存在)。我想重命名 light
、dark1
并删除 dark2
,这样:
light.txt renamed to lgt.txt
dark1.txt renamed to dk1.txt
dark2 (whenever found) should be deleted
这是我所做的:
for /r %x in (light.txt) do ren "%x" lgt.txt
for /r %x in (dark1.txt) do ren "%x" dk1.txt
find . -type f -name 'dark2' -delete
done
在Bash或类似的shell:
find shade* -name light.txt | while read NAME; do mv $NAME `dirname $NAME`/lgt.txt; done
与 dark1
和 dark2
类比(在后一种情况下 rm 而不是 mv)。
我没有成功编写正确的代码!
我的目录是这样的
/Users/dave/yellow/shade001/light
/Users/dave/yellow/shade001/dark1
/Users/dave/yellow/shade001/dark2
...
/Users/dave/yellow/shade999/light
/Users/dave/yellow/shade999/dark1
/Users/dave/yellow/shade999/dark2
yellow目录下大约有999个shade文件夹,每个文件夹包含
2 或 3 个文件(light
始终存在,dark1
始终存在,dark2
有时存在)。我想重命名 light
、dark1
并删除 dark2
,这样:
light.txt renamed to lgt.txt
dark1.txt renamed to dk1.txt
dark2 (whenever found) should be deleted
这是我所做的:
for /r %x in (light.txt) do ren "%x" lgt.txt
for /r %x in (dark1.txt) do ren "%x" dk1.txt
find . -type f -name 'dark2' -delete
done
在Bash或类似的shell:
find shade* -name light.txt | while read NAME; do mv $NAME `dirname $NAME`/lgt.txt; done
与 dark1
和 dark2
类比(在后一种情况下 rm 而不是 mv)。