我想要mv
所有以'x'开头的文件到目录'x';是这样的:在Bash中循环显示字母
mv path1/x*.ext path2/x
,并做了所有字母A,...,Z
如何我写bash脚本,这使得 'X' 在字母表循环?
我想要mv
所有以'x'开头的文件到目录'x';是这样的:在Bash中循环显示字母
mv path1/x*.ext path2/x
,并做了所有字母A,...,Z
如何我写bash脚本,这使得 'X' 在字母表循环?
for x in {a..z}
do
echo "$x"
mkdir -p path2/${x}
mv path1/${x}*.ext path2/${x}
done
这应该让你开始:
for letter in {a..z} ; do
echo $letter
done
这里是如何使用嵌套括号扩展
for l in {{a..n},ñ,{o..z}}; do echo $l ; done | nl
1 a
...
14 n
15 ñ
16 o
...
27 z
或者干脆
echo -e {{a..n},ñ,{o..z}}"\n" | nl
如果你想生成西班牙语字母生成obsolete 29个字符西班牙字母
echo -e {{a..c},ch,{d..l},ll,{m,n},ñ,{o..z}}"\n" | nl
对于法语字母表或德语字母表可以进行类似操作。
使用rename
:
mkdir -p path2/{a..z}
rename 's|path1/([a-z])(.*)|path2/$1/$1$2' path1/{a..z}*
如果要剥离工作的领导[A-Z]从文件名字符,更新perlexpr是:
rename 's|path1/([a-z])(.*)|path2/$1/$2' path1/{a..z}*