grep 搜索表达式并重命名文件

grep 搜索表达式并重命名文件

我有可读的 pdf 文件,所有文件都包含字符串VAX后跟八个数字,例如VAX00002885.

现在我想找到该表达式并将相应的 pdf 重命名为 VAX00002885.pdf(在本例中)。

我怎样才能做到这一点?

答案1

试试这个(假设是 GNU grep):

for pdf in *pdf; do
    mv "$pdf" "$(grep -aE 'VAX[0-9]*' "$pdf" | sed 's/.*\(VAX[0-9]*\).*/\1/)"
done

请注意,这假设只有一个VAXNNNNNNN.如果可以有更多,请仅使用第一个匹配项:

for pdf in *pdf; do
    mv "$pdf" "$(grep -m 1 -aE 'VAX[0-9]*' "$pdf" | sed 's/.*\(VAX[0-9]*\).*/\1/)"
done

相关内容