2017-02-12 21 views
0

我有這個內容的文本文件,PDF:讀取數據並將圖像轉換成交給它

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

我想編寫一個腳本(猛砸/殼/命令行或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個文件夾和子文件夾的圖像(在第二個目錄中)。例如,使用命令:

     convert /blabla/Images/H(3 first digits)/(6digits)-*.jpg /test/PDF/(6digits)-01.pdf
  4. 閱讀第二行...

我寫這篇文章的代碼來嘗試,但它不工作。

 

    cat id.txt 
    sF= cut -b 1-3 id.txt 
    F=cut cut -b 1-6 id.txt 

    while read -r line ; 

    do 

    convert /blabla/Images/H$sF/$F.jpg /test/PDF/'$F'-01.pdf 

    done 

我想我做錯了變量和路徑,但我找不到任何解決方案來解決它。

+1

酷....什麼到目前爲止嘗試過? – Kitson88

+0

是的,它可以使用shell腳本。 – 123

+0

好的,謝謝你我會朝着這個方向前進,發佈我能做的事情。 – Rflow

回答

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 
+0

謝謝我試過了,它工作得很好。你應該添加什麼來執行每個「轉換」? – Rflow

+0

先製作一份你的文件,以防它不做你想做的事,然後編輯腳本並在倒數第二行刪除「echo」這個詞。此刻,它只會迴應屏幕上的內容而不是實際做任何事情,所以如果你刪除了'echo',它實際上會做。 –

+0

謝謝你的一切工作正常;) – Rflow

1

慶典:

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

謝謝。我更新了我的問題。 – Rflow

相關問題