我的问题与以下问题有点不同:
因为在同一个文件夹中,我有每个文件的两个相似副本,例如:
001.txt 和 001(1).txt
……
100.txt 和 100(1).txt
对于每两个相似的副本,创建一个文件夹并将两个相似的副本移至一个文件夹中。 001.txt和001(1).txt放入001文件夹
基于上述问题,但不起作用。上述问题的命令:
set -o errexit -o nounset
cd ~/myfolder
for file in *.txt
do
dir="${file%.txt}"
mkdir -- "$dir"
mv -- "$file" "$dir"
done
试过:
set -o errexit -o nounset
cd ~/myfolder
for file in *(1).txt
do
dir="${file%.txt}"
mkdir -- "$dir"
mv -- "$file" "$dir"
done
此命令将为每个文件创建文件夹。
有什么建议可以区分 001.txt 和 001(1).txt 这样的文件,以便我们可以选择所需的文件来创建一个文件夹,然后运行另一个命令来归档相同的目标?
答案1
你快到了。您缺少的是,您还需要尝试从文件名中删除括号内的数字以派生目录:
#!/bin/sh
for file in *.txt
do
dir="${file%.txt}" # Remove suffix
dir="${dir%(*)}" # Remove bracketed suffix if present
mkdir -p -- "$dir" # Create if necessary
mv -f -- "$file" "$dir" # Move the file
done
mkdir
您可以在和前面添加前缀,mv
以echo
查看在执行操作之前会发生什么。