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

时间:2015-09-24 08:15:37

标签: linux shell sed find

我有下面的文件掩码。文件名非常复杂。 一个例子如下所示。文件的唯一标识符是数字0003915.我需要从

重命名该文件
  

来自" journal.pks.0003915& representation = PDF'到' journal.pks.0003915.pdf'

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

  

journal.pks.0003915&安培;表示= PDF

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

2 个答案:

答案 0 :(得分:0)

我觉得这样的事情会起作用。我们可以将您想要的部分提取为新名称,然后使用以下内容移动文件:

#!/bin/sh
for f in $(ls)
do
    newName=$(echo $f | cut -d\' -f2)
    newName="$newName.cpp"
    mv $f $newName
done

答案 1 :(得分:0)

#!/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功能和一些日志,以防出现问题