eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPowershell plik tekstowy
Ilość wypowiedzi w tym wątku: 22

  • 1. Data: 2011-05-04 07:40:34
    Temat: Powershell plik tekstowy
    Od: "Slawek" <b...@o...pl>

    Witam

    W pliku tekstowym mam coś takiego :

    Accuracy:
    CurrentReading: 19
    CurrentState: Normal
    Description: Temperature Sensor 3 detects for Memory board. Temperature
    reported by the sensor is within normal operating range.
    DeviceID: Temperature Sensor 3

    Accuracy:
    CurrentReading: 40
    CurrentState: Normal
    Description: Temperature Sensor 7 detects for Memory board. Temperature
    reported by the sensor is within normal operating range.
    DeviceID: Temperature Sensor 7

    Accuracy:
    CurrentReading: 18
    CurrentState: Normal
    Description: Temperature Sensor 17 detects for Ambient / External / Room.
    Temperature reported by the sensor is within normal operating range.
    DeviceID: Temperature Sensor 17

    chciałbym wyciągnąć z linii CurrentReading cyfrę 40 porównać z np 45 i
    jeżeli zostanie przekroczona to wysłać maila.
    Nie mogę sobie poradzić z wyciągnięciem cyfry 40 z tego pliku tekstowego w
    powershellu jak tu uczynnić proszę o nakierowanie ? :-)
    No chyba zę sie nie da tego zrobić w powershellu :-)

    Pozdrawiam
    Slawek


  • 2. Data: 2011-05-04 09:10:18
    Temat: Re: Powershell plik tekstowy
    Od: "Slawek" <b...@o...pl>


    lub wydobycie cyfry z takiego formatu z 2 linii :

    CurrentReading: 21
    CurrentReading: 40
    CurrentReading: 19

    Pozdrawiam


  • 3. Data: 2011-05-04 09:14:59
    Temat: Re: Powershell plik tekstowy
    Od: "Slawek" <b...@o...pl>

    Użytkownik "Slawek" napisał w wiadomości grup
    dyskusyjnych:ipr55v$dl5$...@n...onet.pl...


    lub wydobycie cyfry z takiego formatu z 2 linii :

    CurrentReading: 21
    CurrentReading: 40
    CurrentReading: 19

    Pozdrawiam


    (Get-Content my.txt | %{ $_.Split('')[1]; })

    coś takiego daje:
    21
    40
    19

    jak teraz wydobyć tą 40-stkę ?



  • 4. Data: 2011-05-04 09:15:00
    Temat: Re: Powershell plik tekstowy
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2011-05-04, Slawek <b...@o...pl> wrote:
    >
    > lub wydobycie cyfry z takiego formatu z 2 linii :

    Odróżniasz słowo od litery? To dlaczego nie odróżniasz liczby od cyfry?

    > CurrentReading: 21
    > CurrentReading: 40
    > CurrentReading: 19

    W awk to by było coś takiego:
    awk -F: '$1 == "CurrentReading" { print $0 }'
    W PowerShellu to pewnie coś podobnego.

    --
    Secunia non olet.
    Stanislaw Klekot


  • 5. Data: 2011-05-04 09:18:31
    Temat: Re: Powershell plik tekstowy
    Od: "Slawek" <b...@o...pl>



    Użytkownik "Stachu 'Dozzie' K." napisał w wiadomości grup
    dyskusyjnych:ipr5ek$ia1$...@s...org...

    On 2011-05-04, Slawek <> wrote:
    >
    > lub wydobycie cyfry z takiego formatu z 2 linii :

    Odróżniasz słowo od litery? To dlaczego nie odróżniasz liczby od cyfry?

    > CurrentReading: 21
    > CurrentReading: 40
    > CurrentReading: 19

    W awk to by było coś takiego:
    awk -F: '$1 == "CurrentReading" { print $0 }'
    W PowerShellu to pewnie coś podobnego.

    --
    Secunia non olet.
    Stanislaw Klekot

    :-) gdyby tam był tylko awk to życie byłoby o wiele prostsze , ale niestety
    brak go na win2008 64bit :-)



  • 6. Data: 2011-05-04 17:12:15
    Temat: Re: Powershell plik tekstowy
    Od: "Grzegorz Niemirowski" <g...@p...onet.pl>

    Slawek <b...@o...pl> napisał(a):
    > chciałbym wyciągnąć z linii CurrentReading cyfrę 40 porównać z np 45 i
    > jeżeli zostanie przekroczona to wysłać maila.
    > Nie mogę sobie poradzić z wyciągnięciem cyfry 40 z tego pliku tekstowego
    > w powershellu jak tu uczynnić proszę o nakierowanie ? :-)
    > No chyba zę sie nie da tego zrobić w powershellu :-)

    gc test.txt | foreach {
    if ($_ -match "CurrentReading: (\d.*)") {
    $v = $matches[1]
    if ($v -gt 45) { "przekroczono: " + $v}
    }
    }

    To przykład, pewnie da się prościej.

    --
    Grzegorz Niemirowski
    http://www.grzegorz.net/
    OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
    Uptime: 2 days, 8 hours, 58 minutes and 4 seconds


  • 7. Data: 2011-05-04 19:20:29
    Temat: Re: Powershell plik tekstowy
    Od: "Slawek" <b...@o...pl>

    Użytkownik "Grzegorz Niemirowski" napisał w wiadomości grup
    dyskusyjnych:ips1ej$6j1$...@o...icpnet.pl...

    Slawek <b...@o...pl> napisał(a):
    > chciałbym wyciągnąć z linii CurrentReading cyfrę 40 porównać z np 45 i
    > jeżeli zostanie przekroczona to wysłać maila.
    > Nie mogę sobie poradzić z wyciągnięciem cyfry 40 z tego pliku tekstowego
    > w powershellu jak tu uczynnić proszę o nakierowanie ? :-)
    > No chyba zę sie nie da tego zrobić w powershellu :-)

    gc test.txt | foreach {
    if ($_ -match "CurrentReading: (\d.*)") {
    $v = $matches[1]
    if ($v -gt 45) { "przekroczono: " + $v}
    }
    }

    To przykład, pewnie da się prościej.

    --
    Grzegorz Niemirowski
    http://www.grzegorz.net/
    OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
    Uptime: 2 days, 8 hours, 58 minutes and 4 seconds

    Hmmmm nie zupełnie o to mi chodziło gdyż ten skrypt listuje wszystkie linie
    które przekroczyły 45 a może sie zdarzyć ze w pliku będzie ich więcej (są to
    sensory temperatury i wartość po CurrentReading się zmienia) a w pliku
    wejściowym są az 32 linie z rożnymi wartościami i wtedy dostane coś takiego

    przekroczono: 46
    przekroczono: 49

    a mi chodzi aby z linii 2 usunąć CurrentReading: lub wyodrębnić tylko
    wartość 40 a dalej to juz to sobie porównam i wyślę maila.

    Pozdrawiam


  • 8. Data: 2011-05-04 19:42:15
    Temat: Re: Powershell plik tekstowy
    Od: "Grzegorz Niemirowski" <g...@p...onet.pl>

    Slawek <b...@o...pl> napisał(a):
    > Hmmmm nie zupełnie o to mi chodziło gdyż ten skrypt listuje wszystkie
    > linie które przekroczyły 45 a może sie zdarzyć ze w pliku będzie ich
    > więcej (są to sensory temperatury i wartość po CurrentReading się
    > zmienia) a w pliku wejściowym są az 32 linie z rożnymi wartościami i
    > wtedy dostane coś takiego
    > przekroczono: 46
    > przekroczono: 49

    Napisałeś, że masz problem z wyciąganiem wartości więc pokazałem Ci jak użyć
    regexpy w PowerShell

    Podobny przykład:

    $przekroczono = $false;
    gc test.txt | foreach { if ($_ -match "CurrentReading: (\d.*)") { if
    ($matches[1] -gt 45) { $przekroczono = $true;} } }
    $przekroczono

    > a mi chodzi aby z linii 2 usunąć CurrentReading: lub wyodrębnić tylko
    > wartość 40 a dalej to juz to sobie porównam i wyślę maila.
    > Pozdrawiam

    No to jaki masz problem? Masz pokazane jak wyciągać wartość.

    PS. Odpisuj jakoś normalnie bo na razie to dopisujesz mi się do sygnaturki.

    --
    Grzegorz Niemirowski
    http://www.grzegorz.net/
    OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
    Uptime: 2 days, 11 hours, 23 minutes and 38 seconds


  • 9. Data: 2011-05-04 20:19:44
    Temat: Re: Powershell plik tekstowy
    Od: "Slawek" <b...@o...pl>

    Chcę z linii drugiej wyciągnąć liczbę 40 bez żadnych pętli

    CurrentReading: 21
    CurrentReading: 40
    CurrentReading: 19

    może trochę zagmatwałem to wszystko :-)

    Użytkownik "Grzegorz Niemirowski" napisał w wiadomości grup
    dyskusyjnych:ipsa5h$f6o$...@o...icpnet.pl...


    Podobny przykład:

    $przekroczono = $false;
    gc test.txt | foreach { if ($_ -match "CurrentReading: (\d.*)") { if
    ($matches[1] -gt 45) { $przekroczono = $true;} } }
    $przekroczono

    > a mi chodzi aby z linii 2 usunąć CurrentReading: lub wyodrębnić tylko
    > wartość 40 a dalej to juz to sobie porównam i wyślę maila.
    > Pozdrawiam

    No to jaki masz problem? Masz pokazane jak wyciągać wartość.

    PS. Odpisuj jakoś normalnie bo na razie to dopisujesz mi się do sygnaturki.

    --
    Grzegorz Niemirowski
    http://www.grzegorz.net/
    OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
    Uptime: 2 days, 11 hours, 23 minutes and 38 seconds


  • 10. Data: 2011-05-04 20:24:51
    Temat: Re: Powershell plik tekstowy
    Od: "Grzegorz Niemirowski" <g...@p...onet.pl>

    Slawek <b...@o...pl> napisał(a):
    > Chcę z linii drugiej wyciągnąć liczbę 40 bez żadnych pętli
    > CurrentReading: 21
    > CurrentReading: 40
    > CurrentReading: 19
    > może trochę zagmatwałem to wszystko :-)

    1. W czym Ci pętla przeszkadza? Chyba nie ma znaczenia jakiej konstrukcji
    języka użyjesz :)
    2. Co rozumiesz przez wyciągnięcie liczby? Tak jak pokazuje przykład, liczba
    jest w tablicy $matches pod indeksem 1.

    Generalnie brakuje mi dokładnego algorytmu albo nie udało mi się go
    zrozumieć. Chcesz listę liczb większych od zadanej? Chcesz największą?
    Chcesz pierwszą z brzegu większą od zadanej?

    --
    Grzegorz Niemirowski
    http://www.grzegorz.net/
    OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
    Uptime: 2 days, 12 hours, 8 minutes and 49 seconds

strony : [ 1 ] . 2 . 3


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: