将tif合并到重命名的单个文件中

时间:2018-02-21 16:23:39

标签: bash tiff batch-rename

我想将几个tif文件合并为一个自动命名新的多页文件。

假设我有这些文件:

tif65465_001.tif
tif65465_002.tif
tif65465_003.tif

我想获得:

tif65465.tif

(所以删除最后4个字符)。

我正在使用tiffcp但似乎不喜欢批量喂食。

此命令产生bash错误:

for f in *.tif; tiffcp "$f" "$(basename "$f" .tif).tif"; done

...我不知道你用bash删除最后4个字符。

2 个答案:

答案 0 :(得分:3)

我认为你实际上有多个文件有多个页面,而不仅仅是你说的3页的单个文件。

因此,要从其组成页面重建每个文档,只使用第一页迭代文档:

for f in *_001.tif; do 
   base=${f%_*}
   echo Processing $base
   tiffcp $base* $base.tif
done

或者,作为一个单行:

for f in *_001.tif; do base=${f%_*}; tiffcp $base* $base.tif; done

答案 1 :(得分:1)

使用Parameter Expansion

 $ name="tif65465_001.tif"
 $ echo "${name%_*}.tif"
 tif65465.tif

 $ tiffcp "${name}" "${name%_*}.tif"

将以上所有内容放入for loop

 for name in *_001.tif
 do
     tiffcp "${name%_*}"*.tif "${name%_*}.tif"
 done