2012-06-16 64 views
0

我在文件中有一些數據,其中包含一行中的日期。基於這一天,我想將數據複製到特定的目錄中。我如何在PHP或Shell腳本中執行此操作?根據內容中的日期創建文件

FILE1.TXT:

 
101 
RJ 
Printer 
Monday 

FILE2.TXT:

 
101 
RJ 
Switch 
Wednesday 

我想首先數據複製到一個目錄下的 「星期一」 和另外一個 「星期三」。 PHP或Shell腳本中的任何建議?

回答

0

此處的主要問題是你如何檢測「天」。 假定該「日」直插式包含「天」的字符串的結尾:

for i in file*.txt 
do 
    day=$(cat $i| grep day$ | head -1) 
    [ -z "$day" ] && day=UNKNOWN 
    mkdir -p "$day" 
    cp "$1" "$day" 
done 

在這種情況下:

  • 當有兩個或多個「天」的文件,將使用第一個
  • 當有文件中沒有「天」,文件將被複制到UNKNOWN目錄
+0

假定'邁克爾法拉第'沒有出現在這些文件中:P – Wrikken

+0

這和預期的一樣。然而,我得到幾天我有像「2 x星期一」或「4 x星期二」前綴。在這種情況下,該程序正在創建2 x星期一或4 x星期二的目錄。我不想創建任何新的目錄。我已經用天創建了所有的目錄,並且只想將文件複製到相應的目錄中。我如何實現它? –

0

殼牌(如果總是四號線):

for i in file*.txt; do cp $i "`sed -n 4p $i`/$i";done; 
+0

謝謝..如果今天是什麼日子並不總是在第4行? –

+0

然後你可能需要掃描整個地段......建立一個天數陣列,如果任何一行匹配任何一天,則逐行讀取,然後移動。它總是用英語嗎? – Wrikken