2014-08-27 16:53 GMT+03:00 Özgür Kılıçaslan <[email protected]>:
> 27 Ağustos 2014 16:03 tarihinde Coskun Gunduz <[email protected]> yazdı: > > Sanırım şu işinizi görecektir: >> >> >> #!/bin/bash >> >> IFS= >> card= >> tel=0 >> line= >> >> while read line >> do >> if [[ $line == BEGIN\:VCARD* ]] >> then >> card=$line >> >> else if [[ $line == TEL\;CELL* ]] >> then >> tel=1 >> card=$card$line >> >> else if [[ $line == END\:VCARD* ]] && [[ $tel == 1 ]] >> then >> card=$card$line >> >> echo $card; >> card= >> tel=0 >> else >> card=$card$line >> >> fi >> fi >> fi >> done < $1 >> >> Hikmet Coskun Gunduz... >> > > Merhaba, > > Aynı garip sonucu veriyor. > > Merhaba, Python'da şöyle birşey yaptım, denedim, sorun yok gibi: #!/usr/bin/env python # -*- coding: utf-8 -*- file = "a.txt" f = open(file) ff = f.readlines() # Tum kisilerin listesi kisiler = [] # Kisilere ait kartlar kart = "" # satırlar tek tek okunur for line in ff: kart = kart + line # END:VCARD satırına kadar olan bölüm tek bir kartta toplanır if line.startswith("END:VCARD"): kisiler.append(kart) kart = "" # tel no olan kişiler için yeni bir liste oluşturulur. tel_olan_kisiler = [] for i in kisiler: if "TEL" in i: tel_olan_kisiler.append(i) # tel.no olan kişilerin dökümü for x in tel_olan_kisiler: print "------------" print x -- Saygılar, Aytekin Aygün
_______________________________________________ Linux-programlama mailing list [email protected] https://liste.linux.org.tr/mailman/listinfo/linux-programlama Liste kurallari: http://liste.linux.org.tr/kurallar.php
