我想将几个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个字符。
答案 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)
$ 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