使用未知文件格式重命名文件名和掩码。

renaming file name and mask with unknown file format.

我在下面有文件掩码。带有非常复杂的文件名。 下面是一个例子。文件的唯一标识符是数字 0003915。我需要将文件重命名为

From 'journal.pks.0003915&representation=PDF' to 'journal.pks.0003915.pdf'

然而最有趣的是我在文件夹和子文件夹中有大约 5000 个文件。我不知道这些数字。我知道有一系列文件从 0000001 到 0003915。下面显示的是一个例子。文件掩码是“0003915&representation=PDF”我正在寻找一种方法来修改下面的代码来完成这项工作。

journal.pks.0003915&representation=PDF

#!/bin/bash
 for file in $(find /tmp -name '*.txt')
  do
   mv $file $(echo "$file" | sed -r 's|.txt|.cpp|g')
 done

我认为这样的事情会奏效。我们可以提取您想要的部分作为新名称,然后用该名称移动文件:

#!/bin/sh
for f in $(ls)
do
    newName=$(echo $f | cut -d\' -f2)
    newName="$newName.cpp"
    mv $f $newName
done
#!/bin/bash
date > 2PDF.log
for File in $(find /tmp -name '*PDF' -print)
 do
   mv "${File}" "${File%\&*}.pdf"
   echo "${File} -> ${File%\&*}.pdf" >> 2PDF.log
 done

使用 shell 功能和一些日志以防出错