我有可读的 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