【问题标题】:Read data from a text file and convert images to PDF referred to it从文本文件中读取数据并将图像转换为引用它的 PDF
【发布时间】:2017-06-30 18:23:50
【问题描述】:

我有一个包含以下内容的文本文件:

123412-01 123413-01 123411-01 123414-01 123415-01

我想编写一个脚本(Bash/shell/命令行或 PHP),它将选择每行的前 6 个数字并将文件复制到包含类似名称的图像的另一个目录中。

123412-123.jpg
123412-124.jpg
123412-123.jpg
123413-123.jpg
123414-123.jpg
123415-123.jpg
123416-123.jpg

我不知道我的问题是否清楚。

  1. 读取第一行并选择前 3 个数字(保留在内存中)

  2. 读取第一行,现在选择前 6 个数字(保留在内存中)

  3. 转换文件夹和子文件夹中包含前 3 个数字和 9 个 6 的图像(在第二个目录中)。例如使用命令:

     转换 /blabla/Images/H(3 个第一位)/(6digits)-*.jpg /test/PDF/(6digits)-01.pdf 
  4. 阅读第二行...

我已经编写了这段代码来尝试它,但它不起作用。

猫身份证.txt sF= cut -b 1-3 id.txt F=cut cut -b 1-6 id.txt 同时读取 -r 行; 做 转换 /blabla/Images/H$sF/$F.jpg /test/PDF/'$F'-01.pdf 完毕

我认为我在变量和路径上做错了,但我找不到任何解决方案。

【问题讨论】:

  • 酷....到目前为止尝试了什么?
  • 是的,可以使用 shell 脚本。
  • 好的,谢谢你,我会朝这个方向走,并发布我能做的事情。
  • 我通过添加我的代码和新信息更新了我的问题。

标签: bash shell pdf copy imagemagick-convert


【解决方案1】:

我认为你的意思是:

#!/bin/bash
while read line; do
   first3=${line:0:3}
   first6=${line:0:6}
   echo convert "/blah/blah/images/H${first3}/${first6}-*.jpg" "/test/PDF/${first6}-01.pdf"
done < file.txt

这给出了这个:

样本输出

convert /blah/blah/images/H123/123412-*.jpg /test/PDF/123412-01.pdf
convert /blah/blah/images/H123/123413-*.jpg /test/PDF/123413-01.pdf
convert /blah/blah/images/H123/123411-*.jpg /test/PDF/123411-01.pdf
convert /blah/blah/images/H123/123414-*.jpg /test/PDF/123414-01.pdf
convert /blah/blah/images/H123/123415-*.jpg /test/PDF/123415-01.pdf

【讨论】:

  • 谢谢,我试过了,效果很好。你应该添加什么来执行每个“转换”?
  • 首先复制您的文件以防它不符合您的要求,然后编辑脚本并删除倒数第二行中的单词echo。目前它只会在屏幕上回显它会做的事情而不是实际做任何事情,所以如果你删除echo,它实际上会做。
【解决方案2】:

重击:

cat file.txt|cut -b 1-6|while read N; do cp "FIRSTDIR/image_$N.jpg" SECONDDIR; done

【讨论】:

    猜你喜欢
    • 2021-09-01
    • 2011-10-02
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 2019-07-27
    • 2018-10-17
    相关资源
    最近更新 更多