Şimdi Ara

Shell ile sonuca göre belirli bir satırı aramak

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
59
Cevap
0
Favori
1.706
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
Öne Çıkar
0 oy
Sayfa: 123
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Merhaba arkadaslar.
    bir shell skript yazmak zorundayim. Elimden uzun bir dosya var. Dosya belirli bir template'e yani kaliba göre olusturulmus. Template söyle görünüyor.

     
    From xxxxxxxxxxx
    Received: yyyyyyyyyyyyyyyyyy
    Date: Wed, 12 Sep 2012 01:32:57 +0200 (METDST)
    From: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
    Message-Id: ooooooooooooooooooooooooooooooooooooooooo
    Subject: blabla
    Status: O

    *************************************************
    Cron: The previous message is the standard output
    and standard error of one of your crontab commands:

    if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/GFXload tdpro_only ; fi


    Dosyam bu template den bir cok tanesinin alt alta yazilmasiyla meydana geldi. (En az 400 Tane). Template yapilari ayni Yani From ile baslayip if satiri ile bitiyor fakat Template icerik nedeniyle farkli uzunluklarda olabilir. Asagida bu dosyadan bir örnek veriyor. Bu örnekte sadece 4 tane template alt alta yazilmis dedigim gibi bundan en az 400 tane var ama sayisi önemli degil

     
    From xxxxxxxxxxx
    Received: yyyyyyyyyyyyyyyyyy
    Date: Wed, 12 Sep 2012 01:32:57 +0200 (METDST)
    From: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
    Message-Id: ooooooooooooooooooooooooooooooooooooooooo
    Subject: blabla
    Status: O

    *************************************************
    *************************************************
    *************************************************
    *************************************************
    *************************************************
    Cron: The previous message is the standard output
    and standard error of one of your crontab commands:

    if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/1 ; fi

    From xxxxxxxxxxx
    Received: yyyyyyyyyyyyyyyyyy
    Date: Wed, 12 Sep 2012 01:32:57 +0200 (METDST)
    From: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
    Message-Id: ooooooooooooooooooooooooooooooooooooooooo
    Subject: blabla
    Status: O

    *************************************************
    *************************************************
    *************************************************
    Error********************************************
    *************************************************
    Cron: The previous message is the standard output
    and standard error of one of your crontab commands:

    if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/2 ; fi

    From xxxxxxxxxxx
    Received: yyyyyyyyyyyyyyyyyy
    Date: Wed, 12 Sep 2012 01:32:57 +0200 (METDST)
    From: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
    Message-Id: ooooooooooooooooooooooooooooooooooooooooo
    Subject: blabla
    Status: O

    *************************************************
    *************************************************
    *************************************************
    Cron: The previous message is the standard output
    and standard error of one of your crontab commands:

    if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/1 ; fi

    From xxxxxxxxxxx
    Received: yyyyyyyyyyyyyyyyyy
    Date: Wed, 12 Sep 2012 01:32:57 +0200 (METDST)
    From: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
    Message-Id: ooooooooooooooooooooooooooooooooooooooooo
    Subject: blabla
    Status: O

    *************************************************
    *************************************************
    *************************************************
    *************************************************
    *************************************************
    *************************************************
    *************************************************
    *************************************************
    *************************************************
    Cron: The previous message is the standard output
    and standard error of one of your crontab commands:

    if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/1 ; fi


    Burada yapmam gereken belirli bir kelimeye göre dosyayi aramam ve bu kelimeyi iceren template'in son satirini ekranda yazan bir shell skript yazmam gerekiyor.
    Aradigim kelime "Error" olsun. Yukaridaki örnekte Error kelimesini iceren sadece 2. template. bu nedenle skript 2. template'e ait olan son satiri bana göstermeli


     
    if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/1 ; fi


    Bunun icin nasil bir shell skript yada komutu yazmaliyim.? awk ve grep bana nasil yardim edebilir?
    Simdiden tesekkürler...



    _____________________________
  • calistigim sistem unix oldugu icin shell ile yazmam gerekiyor.php olayina hic girmiyeyim ben.
    Bu büyük dosya icerisinde shell komutlari ile From ile baslayip if ile biten template'leri nasil secebilirim?
    Yani bu dosya toplam 400 tane template iceriyorsa bunlari ayri ayri nasil secebilirim. Her template From ile basliyor ve if satiri ile bitiyor...
    _____________________________
  • Arkadasim ben C-Shell kullaniyorum. Ben söyle bir yöntem düsündüm. Teorik olarak ise yaramasi gerek ama nasil yapcam bilmiyorum.
    Benim ana dosyam söyledigim gibi 400e yakin alt alta yazilmis template (mail) iceriyor. Tüm bu template'ler (mailler) From ile baslayip fi kelimesi ile bitiyor. Yapmam gereken aranan kelimenin (mesela Error) iceren templatei bulup ona ait olan if satirini (son satirini) göstermek.
    Benim düsündügüm yöntem bir shell script ile bu 400 template'i sirayla tek tek gecici bir dosya icine yazmak. Ilk template'i (maili) bu gecici dosya icine yazip bu dosya icinde aranan kelime olup olmadigina bakmak.Varsa son satirini göstermek. Bu gecici dosyanin icini silip sonra ikinci template'i ayni sekilde bu gecici dosyaya kaydedip orada yine ayni aramayi yapmak.Bu sekilde 400 defa her template'i (maili) bu gecici dosyaya kaydedip kelimeyi aramak.
    Bunun icin bir döngü yapabilirim ama nasil yapcam...?

    more kaynak_dosyam | sed s/'From'/""/ | sed s/'fi'/""/ > gecici_dosya.txt 


    komutu ile From ile baslayip fi ile biten bölümü gecici_dosya.txt icine yaziyorum. Fakat dosyaya baktigimda tüm hepsinin birden yazildigini görüyorum.
    Oysaki ben template'leri (mailleri) tek tek kaydetmek istiyorum. Tek tek kaydetmeliyimki her template icin gecici dosya icinde aranan kelimeyi arayabileyim ve bulursam sonra satirini gösterebileyim.Dedigimi umarim anlatabildim. Iyi bir yöntem olmayabilir ama aklima baska bir yöntem gelmedi.
    _____________________________




  • En basitinden isini gorup cikmak icin.

    > cat hop.txt | grep 'Error\|if \['
    if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/1 ; fi
    Error********************************************
    if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/2 ; fi
    if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/1 ; fi
    if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/1 ; fi

    Burada Error'den sonra gelen ilk if senin aradigin if satiri diyebiliriz. Illaki duzgun birseyler yazmak istiyorsan is biraz uzun. O kadar ugrasmani gerektirecek bir durum var mi ? Ben kucuk bisiyler yazdim asagida var. Baslangic olur :)

    Solaris asagidaki bash versiyonunda calisiyor.
    >bash --version
    GNU bash, version 3.00.16(1)-release (sparc-sun-solaris2.10)
    Copyright (C) 2004 Free Software Foundation, Inc.

    Linux asagidaki bash versiyonunda calisiyor.
    > bash --version
    GNU bash, version 3.2.33(1)-release (x86_64-wrs-linux-gnu)

    Linux asagidaki bash versiyonunda calismiyor.
    > bash --version
    GNU bash, version 2.05a.0(14)-release (i686-pc-linux-gnu)
    Copyright 2001 Free Software Foundation, Inc.


     
    #!/bin/bash

    program=`basename $0`
    file=$1
    text=$2
    Got_it=0

    if_regex="^.*if.*$"
    text_regex="^.*$text.*$"

    if [ $# -ne 2 ]
    then
    echo "Usage : $program \$file_name \"\$text_to_match\""
    echo "Example : $program hop.txt \"Error Abo\" "
    exit
    fi

    while read line; do

    if [[ $Got_it -eq 1 ]]
    then
    if [[ $line =~ $if_regex ]]
    then
    echo "$line"
    exit
    fi
    fi

    if [[ $line =~ $text_regex ]]
    then
    Got_it=1
    fi
    done < $file


    veya su sekilde az kisaltilabilir.

    #!/bin/bash 

    program=`basename $0`
    file=$1
    text=$2
    Got_it=0

    if_regex="^.*if.*$"
    text_regex="^.*$text.*$"

    if [ $# -ne 2 ]
    then
    echo "Usage : $program \$file_name \"\$text_to_match\""
    echo "Example : $program hop.txt \"Error Abo\" "
    exit
    fi

    while read line; do
    if [[ $Got_it -eq 1 ]]; then
    [[ $line =~ $if_regex ]] && echo "$line" && exit
    fi
    [[ $line =~ $text_regex ]] && Got_it=1
    done < $file


     
    > ./finder.sh
    Usage : finder.sh $file_name "$text_to_match"
    Example : finder.sh hop.txt "Error Abo"
    > ./finder.sh hop.txt Error
    if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/2 ; fi



    < Bu mesaj bu kişi tarafından değiştirildi garui -- 20 Eylül 2012; 12:34:16 >




  • ben c-shell kullaniyorum. Bu kod sanirim bende calismayacaktir...
    _____________________________
  • Sistemde Bash yok mu yani ? Sen koyala yapistir bakalim ne olucak. Tepesinde komacan #!/bin/bash yaziyor. Bizde normalde cshell kullaniyoruz ama scriptleri bash ile yaziyorum. cshell scripting icin kotu bir shell diyebiliriz.
  • quote:

    Orijinalden alıntı: garui

    Sistemde Bash yok mu yani ? Sen koyala yapistir bakalim ne olucak. Tepesinde komacan #!/bin/bash yaziyor. Bizde normalde cshell kullaniyoruz ama scriptleri bash ile yaziyorum. cshell scripting icin kotu bir shell diyebiliriz.

    senin scripti calistirmak istedigim bu hatayi aliyorum


    interpreter "/bin/bash" not foun
    file link resolves to "/usr/bin/bash"
    bash: ./ElmErrorCheck2.sh: /bin/bash^M: bad interpreter: No such file or directory
    _____________________________
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • #!/bin/bash satirini #!/usr/bin/bash ile degistir
  • Ayrica Windows'tan Linux'a icerik kopyalarken \CR\LF \LF farkina dikkat etmen gerek.

    Windows yeni satir icin \CR\LF Unix \LF kullanir. ^M gormen bu yuzden.http://linuxcommand.org/man_pages/dos2unix1.html do2unix ile dosyayi duzeltmen gerek. Veya benim bu isi yapmak icin yazdigim perl scriptini verebilirim. Faka but sekilde koyalarsan o da calismayacaktir ne yazikki.
  • quote:

    Orijinalden alıntı: garui

    Sistemde Bash yok mu yani ? Sen koyala yapistir bakalim ne olucak. Tepesinde komacan #!/bin/bash yaziyor. Bizde normalde cshell kullaniyoruz ama scriptleri bash ile yaziyorum. cshell scripting icin kotu bir shell diyebiliriz.

    malesef bende calismadi ve su hatayi verdi

    interpreter "/bin/bash" not foun
    file link resolves to "/usr/bin/bash"
    bash: ./ElmErrorCheck2.sh: /bin/bash^M: bad interpreter: No such file or directory


    Bahsettigim gibi c-shell kullaniyorum ve her zaman scriptlerime

    #!/bin/csh


    ile basliyorum. Aradaki farki anlamiyorum...
    _____________________________
  • Aradaki farki soyle aciklayabilirim.

    #!/bin/csh -- cshell kabugunu cagirip devam eden satirlardaki yonergeleri buna gore isle demek.
    #!/usr/bin/bash -- bash kabugunu cagirip devam eden satirlardaki yonergeleri buna gore isle demek.

    Bu satirlara gore ayaga ya bir CSH veya BASH kalkip yonergeleri isler.

    Dedigim gibi ilk satiri degistirmemissin. Ayrica hala ^M var scriptte. Herhangi bir script windows'da kaydedilkten sonra Unix Linux uzerinde kolay kolay calismayip hata verecektir. Olmamasi gereken karakterler koyuyorsun bu durumda scriptin icine ve dogal olarak calismiyor.

    ilk satiri yani #!/bin/bash satirini #!/usr/bin/bash ile degistir

    sonra

    > dos2unix ElmErrorCheck2.sh ElmErrorCheckGarui.sh

    yapip sonra

    > ./ElmErrorCheckGarui.sh

    yapmayi dene.
  • #!/usr/bin/bash 
    program=`basename $0`
    file=$1
    text=$2
    Got_it=0

    if_regex="^.*if.*$"
    text_regex="^.*$text.*$"

    if [ $# -ne 2 ]
    then
    echo "Usage : $program \$file_name \"\$text_to_match\""
    echo "Example : $program hop.txt \"Error Abo\" "
    exit
    fi

    while read line; do
    if [[ $Got_it -eq 1 ]]; then
    [[ $line =~ $if_regex ]] && echo "$line" && exit
    fi
    [[ $line =~ $text_regex ]] && Got_it=1done < $file


    ElmErrorCheck2.sh olarak kaydettim.Notepad++ ile CR leri sildim. Scripti calistirdimda artik ^M hatasi vermiyor.
    dos2unix komutu benim sistemde taninmiyor. HP Unix kullaniyorum bundan mi acaba?
    _____________________________
  • sanirim tam olarak yapmak istedigimi anlatamadim...
    Tekrar daha acik aciklamak istiyorum.Benim dosyam en az 400 tane alt alta yazilmis Email iceriyor. Bu Emailler farkli uzunluklarda.Yani teki 30 satirdan olusabilirken digeri 50 satirdan olusabiliyor. Standard bir satir sayisi olmadigi icin isim zorlasiyor.Ama her mail ayni kelime ile baslayip (From) ayni kelime ile bitiyor (fi).
    Benim yapmam gereken bu mailler arasindan belirli bir kelimeyi iceren Emailleri bulup bunun son satirini göstermek.Aranacak kelime "Error" olabilir. Bu Error kelimesini 400 Email icerisinde 40 tanesi icerebilir.Yapmam gereken bu 400 Email icerisinde 40 tane Emaili tespit edip bunlarin son satirlari göstermek.
    Izlemek istedigim yöntem her maili sirayla bir dosya icine gecici olarak kaydedip bu dosya icinde aramak yapmak.Cünkü bu dosya icinde bir mail olcak ve bu dosya icinde bir kelimeyi arayip varsa son satirini görüntülemek cok kolay.
    Simdi merak ettigim bu 400 Maili tek tek dosya icine yazip arama yapabilirim.?
    c-shell kullandigimi tekrar belirtmek istiyorum
    _____________________________




  • Ben de inatla script olayinin Cshell ile alakasi olmadigini soylemek istiyorum :) Cshell kullanabilirsin ama herhangi bir shell scripti calistirabilirsin(ozellikle bu shell sistemden kaldirilmadiysa ki sitemde bash oldugunu gorebiliyoruz.)

    Simdi anlatmak istedigin daha iyi anlasildi bu arada.



    < Bu mesaj bu kişi tarafından değiştirildi garui -- 20 Eylül 2012; 14:21:34 >
  • Eger kelime bulundugunda mail bitiminde if ... fi geldigini garanti ediyorsan bu alttaki script her turlu calisir ve calisiyor.
    scripte eklemedigim sey from subject vs filedlerinde kelimenin bulunma olasiligi. Bu durumda da bu mailin son satirini gosterecektir. Eger alttaki scripti calistiribilirsenki bildigim kadariyla calismasi lazim sen de bunu ekleyebilir veya boyle birakabilirsin.

    (Hop.txt) senin verdigin ornek dosyanin icerigidir.

     
    #!/usr/bin/bash

    program=`basename $0`
    option=$1
    file=$2
    text=$3
    Got_it=0
    last_found_line="Nothing Found!"
    ever_found=0
    counter=0

    if_regex="^.*if.*fi.*$"
    text_regex="$text"


    if [[ $# -ne 3 ]] || ([[ $option != "--all" ]] && [[ $option != "--last" ]])
    then
    echo "Usage : $program [--all|--last] \$file_name \"\$text_to_match\""
    echo "\"\$text_to_match\" : is a regular expression check."
    echo " Ex: 'rror\*' 'Error.*[0-9]+'"
    echo "Example : $program --all hop.txt \"Error Abo\" "
    echo "Example : $program --last hop.txt 'Error Abo\*'"
    exit
    fi

    if [[ ! -f $file ]]
    then
    echo "Error : Could not find the file to open"
    exit
    fi

    while read line; do
    counter=$((counter+1))
    if [[ $Got_it -eq 1 ]]; then
    if [[ $option == "--all" ]]
    then
    [[ $line =~ $if_regex ]] && echo "Line($counter): $line" && Got_it=0 && ever_found=1
    else
    [[ $line =~ $if_regex ]] && last_found_line="Line($counter): $line" && Got_it=0
    fi
    fi
    [[ $line =~ $text_regex ]] && Got_it=1
    done < $file

    if [[ $option == "--last" ]] || [[ $ever_found -eq 0 ]]
    then
    echo "$last_found_line"
    fi


    Calistirma orneklerini de kopyaladim.

     
    bash-3.00$ ./finder.sh
    Usage : finder.sh [--all|--last] $file_name "$text_to_match"
    "$text_to_match" : is a regular expression check.
    Ex: 'rror\*' 'Error.*[0-9]+'
    Example : finder.sh --all hop.txt "Error Abo"
    Example : finder.sh --last hop.txt 'Error Abo\*'

    bash-3.00$ ./finder.sh --all ass.txt Error
    Error : Could not find the file to open

    bash-3.00$ ./finder.sh --all hop.txt Error
    Line(35): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/2 ; fi

    bash-3.00$ ./finder.sh --last hop.txt Error
    Line(35): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/2 ; fi


    bash-3.00$ ./finder.sh --last hop.txt rror
    Line(73): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/1 ; fi


    bash-3.00$ ./finder.sh --all hop.txt rror
    Line(17): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/1 ; fi
    Line(35): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/2 ; fi
    Line(51): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/1 ; fi
    Line(73): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/1 ; fi

    bash-3.00$ ./finder.sh --all hop.txt 'Error\*'
    Line(35): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/2 ; fi

    bash-3.00$ ./finder.sh --all hop.txt 'rror\*'
    Line(35): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/2 ; fi

    bash-3.00$ ./finder.sh --all hop.txt '^.*Error\*+$'
    Line(35): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/2 ; fi




    < Bu mesaj bu kişi tarafından değiştirildi garui -- 20 Eylül 2012; 14:38:33 >




  • quote:

    Orijinalden alıntı: seyfi84

    ben senin sorununu en baştan anladım, da benim cevaplarımı anlayan yok henüz

    Seyfi hocam malesef senin komut ise yaramadi.
    Ben simdi düsündüm ve strateji degistirdim...
    400 Email iceren bu uzun dosyayi satir satir awk ile okumaya karar verdim.
    Bu dosyayi satir satir okumaya baslicam.Ilk kelime From ise Email basi oldugunu anlicam
    Sonra buradan itibaren her satirda "Error" kelimesi varmi diye kontrol etcem. Taki bir sonraki From'a gelene kadar. Bir sonraki From geldiginde bir önceki satir benim bir önceki Mailimin son satiri yani göstermek istedigim satir olcak ve bu satiri bir degiskene kaydetcem. Eger bu arada "Error" kelimesine rastlarsam bu degisken icine kaydedilen son satiri göstercem aksi halde yeni maille aramaya devam etcem.
    Plan bu.
    _____________________________




  • quote:

    Orijinalden alıntı: beterman

    quote:

    Orijinalden alıntı: seyfi84

    ben senin sorununu en baştan anladım, da benim cevaplarımı anlayan yok henüz

    Seyfi hocam malesef senin komut ise yaramadi.
    Ben simdi düsündüm ve strateji degistirdim...
    400 Email iceren bu uzun dosyayi satir satir awk ile okumaya karar verdim.
    Bu dosyayi satir satir okumaya baslicam.Ilk kelime From ise Email basi oldugunu anlicam
    Sonra buradan itibaren her satirda "Error" kelimesi varmi diye kontrol etcem. Taki bir sonraki From'a gelene kadar. Bir sonraki From geldiginde bir önceki satir benim bir önceki Mailimin son satiri yani göstermek istedigim satir olcak ve bu satiri bir degiskene kaydetcem. Eger bu arada "Error" kelimesine rastlarsam bu degisken icine kaydedilen son satiri göstercem aksi halde yeni maille aramaya devam etcem.
    Plan bu.



    Yukaridaki script dedigini yapiyor zaten. sadece gerekli olmadigi icin mail basini atliyorum. Zaten if ... fi ye geldigimde bulundu degerini 0'a atagimizdan bir dahaki if...fi basilmiyor egerki bu mail icindede aradgimiz kelime yoksa.




  • @seyyfi84 Bende oyle yapiyorum zaten :)

     
    From xxxxxxxxxxx
    Received: yyyyyyyyyyyyyyyyyy
    Date: Wed, 12 Sep 2012 01:32:57 +0200 (METDST)
    From: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
    Message-Id: ooooooooooooooooooooooooooooooooooooooooo
    Subject: blabla
    Status: O

    *************************************************
    *************************************************
    *************************************************
    ****************aranan_sozcuk*********************
    *************************************************
    *************************************************
    *************************************************
    *************************************************
    *************************************************
    Cron: The previous message is the standard output
    and standard error of one of your crontab commands:


    Yukaridekinin icinde aranan sozcgu bulursam mailin altindaki

    if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/1 ; fi

    satirini basiyorum.(dosyanin icindeki satir sayisiyla beraber. boylece dosya icinde kontrol yapmak isternirse kolaylik saglamak icin)




  •  
    bash-3.00$ ./finder.sh
    Usage : finder.sh [--all|--last] $file_name "$text_to_match"
    "$text_to_match" : is a regular expression check.
    Ex: 'rror\*' 'Error.*[0-9]+'
    Example : finder.sh --all hop.txt "Error Abo"
    Example : finder.sh --last hop.txt 'Error Abo\*'

    bash-3.00$ ./finder.sh --all ass.txt Error
    Error : Could not find the file to open

    bash-3.00$ ./finder.sh --all hop.txt Error
    Line(35): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/2 ; fi

    bash-3.00$ ./finder.sh --last hop.txt Error
    Line(35): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/2 ; fi


    bash-3.00$ ./finder.sh --last hop.txt rror
    Line(73): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/1 ; fi


    bash-3.00$ ./finder.sh --all hop.txt rror
    Line(17): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/1 ; fi
    Line(35): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/2 ; fi
    Line(51): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/1 ; fi
    Line(73): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/1 ; fi

    bash-3.00$ ./finder.sh --all hop.txt 'Error\*'
    Line(35): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/2 ; fi

    bash-3.00$ ./finder.sh --all hop.txt 'rror\*'
    Line(35): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/2 ; fi

    bash-3.00$ ./finder.sh --all hop.txt '^.*Error\*+$'
    Line(35): if [ -f $HOME/slab.ini ]; then $HOME/slab.ini $HOME/scripts/CronJobs/2 ; fi


    Daha ne isteniyor bilemiyorum artik :) Regular Expression ile arama yapabiliyorsun hem de.




  • Aslinda sadece "Error" degil.Buna benzer bir kac kelime daha var."Permission", "not found", "failed" gibi hata ifade eden kelimeler. Simdilik Error ile baslamak istedim.Calisan bir script bulursam diger kelimeleride eklerim diye düsündüm.
    From 
    Received
    Message-Id
    Status


    bunlar standard yani tüm mailler bunlari iceriyor.Bu arada aramama yapmama gerek yok.Bunlar standard oldugu icin bir maili digerlerinde ayirabilmem icin gerekli.Mailler ayni uzunlukta olsaydi isim kolay olcakti birbirine ayirt ederken karakter sayisina göre ayirabilirdim. Ama maillerin iceriklerinden dolayi mailler ve satir satilari farkli oldugu icin isim zorlasiyor.
    awk ile calisirken ilk From gördügümde Mail basi oldugunu anlicam. Sonra "Error" kelimesini aramaya baslicam. Eger "Error" kelimesine rastlarsam match yapcam.
    Her Mailin son satiri

    if [ -f $HOME/slab.ini ]

    ile baslaiyor. Bu satira rastladigimda match eger isaretlenmisse bu son satiri gösterebilirim. Match isaretlenmemisse yani "Error" kelimesine rastlanmamissa bir sonraki maill devam etcem.
    Son teoride calismasi mümkün planim bu..
    _____________________________




  • 
Sayfa: 123
Sayfaya Git
Git
sonraki

Benzer içerikler

- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.