根据文件名中的数字移动文件
Move files according to number in filename
我正在尝试根据名称中的数字移动文件夹中的文件。
文件的名称类似于 fooNNN_bar.txt
我想将它们组织为 /NNN/fooNNN_bar.txt
这是我目前拥有的。它打印出每个文件必须移动到的文件夹。我不确定如何收集数字以将其添加到 mv 命令中。这甚至是正确的方法吗?
#!/bin/bash
for filename in foo*.txt;
do
echo "${filename}" | grep -Eo '[0-9]{1,4}';
done
假设您的 grep 如您所愿:
#!/bin/bash
for filename in foo*.txt; do
num=$(echo "${filename}" | grep -Eo '[0-9]{1,4}')
mkdir -p "$num"
mv "$filename" "$num"
done
我正在尝试根据名称中的数字移动文件夹中的文件。
文件的名称类似于 fooNNN_bar.txt
我想将它们组织为 /NNN/fooNNN_bar.txt
这是我目前拥有的。它打印出每个文件必须移动到的文件夹。我不确定如何收集数字以将其添加到 mv 命令中。这甚至是正确的方法吗?
#!/bin/bash
for filename in foo*.txt;
do
echo "${filename}" | grep -Eo '[0-9]{1,4}';
done
假设您的 grep 如您所愿:
#!/bin/bash
for filename in foo*.txt; do
num=$(echo "${filename}" | grep -Eo '[0-9]{1,4}')
mkdir -p "$num"
mv "$filename" "$num"
done