用于根据文件中的最后 4 位数字组合移动的正则表达式

Regex for moving based on last 4 digit combinations in a file

我有以下方式标记的文件,需要根据 0000 - 0010 移动它们(基于最后 4 位数字。这个的正则表达式是什么? 我试过这个正则表达式,但我什么也没得到。作为不是正则表达式专家的人,我们将不胜感激。

find ./ -regextype egrep -regex '.*file([0-9]\+-[0-9]\+-[0-9])\+.flac'

我的正则表达式没有输出,但只想将 0000 到 0010 复制到新位置

1241-137614-0000.flac
1241-137614-0001.flac
1241-137614-0002.flac
1241-137614-0003.flac
1241-137614-0004.flac
1241-137614-0005.flac
1241-137614-0006.flac
1241-137614-0007.flac
1241-137614-0008.flac
1241-137614-0009.flac
1241-137614-0010.flac

我建议使用 bash 版本 >= 4.0:

mv 1241-137614-{0000..0010}.flac <destination_dir>

如果源文件不存在,您将收到来自 mv 的错误消息。

对于移动文件,我同意@Cyrus。如果您仍然需要正则表达式来编写脚本,这行得通:

echo "1241-137614-0001.flac" | grep -E -o ".{0,4}.flac" | tr -d '.flac'

虽然可能有更好的方法来删除扩展。