2016-04-12 18 views
-2

Bubir csv dosyasından değerini alarak ve başka csv dosyasında varsa kontrol

Stanza 07,41912087207 Stanza 08,41912087208 Stanza 09,41912087209

ve bu

0101*200,0789240959,centralino,101,2016-03-03 14:02:35,281,1.47,,4178,"La Perla" <41917913577> 
0101*200,0789240959,centralino,101,2016-03-03 14:02:35,281,500.12,,4178,"La Perla" <41912087207> 
0101*200,0917911974,centralino,101,2016-03-03 14:52:16,0,0,,41,"La Perla" <41917913577> 

benziyor başka birine benzeyen bir CSV dosyası var Bu yüzden, ilk dosyadan ID değerini almak istiyorum, ikinci csv dosyasında var olup olmadığını kontrol edin ve eğer varsa, altıncı virgülden sonra değerleri yazdırın, yukarıdaki satırlarda 500.12 olur. CSV dosyalarının her ikisi de 41912087207.İşte Ben $ koymak

if(strpos($line, $arrr[1])){ 

i dosyanın başında ilan edilir $ arama, çalışır koyarsanız, ama eğer bu kod doğrultusunda kodum

<?PHP 
$search= "41912087207"; 
$linescdr  = file('cdr.txt'); 
$linesstanze = file('stanze.txt'); 

while (list($key, $line1) = each($linesstanze)) { 

    $arrr = explode(",", $line1); 

     while (list($key, $line) = each($linescdr)) { 
    if(strpos($line, $arrr[1])){ 
    $arr = explode(",", $line); 
    echo $arr[6]; 
    echo "<br>"; 
} 
} 

} 
?> 

olduğunu while döngüsünde tek tek stanze.txt olan IDr [1], bir şey yapmıyor gibi görünüyor.

+0

6. virgül .. PHP'de csv işlevleri vardır, bunları kullanın. –

+0

Burada bulduğum şeylerle çözebilseydim sormazdım. – outbeyond

+0

@outbeyond Onun sorunu, karşılaştığınız herhangi bir hatanın yanı sıra çözüme ulaşmak için herhangi bir girişimde bulunmamanızdır. Lütfen göndermeden önce [yardım sayfası] (http://stackoverflow.com/help) okuyun. – Bloodied

cevap

0
for id in $(cut -f2 -d',' file1); do cat file2 | grep $id | cut -f7 -d','; done 

Ve hop, işiniz bitti;

İlgili konular