Freesco, NND, CDN, EOS http://forum.freesco.pl./ |
|
Pomoc przy skrypcie w bash'u http://forum.freesco.pl./viewtopic.php?f=34&t=16684 |
Strona 1 z 2 |
Autor: | Albercik [ niedziela, 16 marca 2008, 15:28 ] |
Tytuł: | Pomoc przy skrypcie w bash'u |
Nie mogę poradzić sobie z takim oto problemem : jest sobie plik tekstowy (log), w którym zapisywane są regularne dane. Muszę napisać skrypt, który 1) pobierze 1 linię z loga 2) wykona odpowiednie porównania (to już mam - poniżej) n) i tak dalej, linia po linii Do czego doszedłem: mac_kl=`echo "$linia" | grep -w Connected | awk '{print $3}' ` ip_kl=`echo "$linia" | grep -w remote | awk '{print $4}'` $linia to zmienna do której muszę podstawić każdą linijkę logu. Jak wyciągnąć linię po linii i każdą z nich podstawić do zmiennej ? |
Autor: | zciech [ niedziela, 16 marca 2008, 16:53 ] |
Tytuł: | |
zobacz sobie w skryptach: http://ww2.devel-nnd.brb.pl/nnd/pakiety ... pkg.tar.gz http://ww2.devel-nnd.brb.pl/nnd/pakiety ... pkg.tar.gz http://ww2.devel-nnd.brb.pl/nnd/pakiety ... pkg.tar.gz |
Autor: | Albercik [ niedziela, 16 marca 2008, 22:53 ] |
Tytuł: | |
zciech pisze: zobacz sobie w skryptach:
http://ww2.devel-nnd.brb.pl/nnd/pakiety ... pkg.tar.gz http://ww2.devel-nnd.brb.pl/nnd/pakiety ... pkg.tar.gz http://ww2.devel-nnd.brb.pl/nnd/pakiety ... pkg.tar.gz Dzięki za wskazówkę , działa. |
Autor: | Mis' [ poniedziałek, 17 marca 2008, 03:45 ] |
Tytuł: | Re: Pomoc przy skrypcie w bash'u |
Albercik pisze: mac_kl=`echo "$linia" | grep -w Connected | awk '{print $3}' ` ip_kl=`echo "$linia" | grep -w remote | awk '{print $4}'` Procesor Ci się nudzi i chcesz go czymś zająć? mac_kl=`echo "$linia" | awk '/Connected / {print $3}' ` ip_kl=`echo "$linia" | awk '/ remote / {print $4}'` awk doskonale sobie radzi bez pomocy grepa. Nie pamiętam teraz czy ma odpowiednik opcji '-w' ale nawet jeśli nie to łatwo to zrobić dodając spacje (tabulatory, znaki nowej linii czy co tam jest potrzebne) wokół poszukiwanego wzorca. Co do głównego pytania - tak wygląda ogólna konstrukcja wczytująca do zmiennej line kolejno wszystkie linie z pliku while read line; do #tu robisz to co chcesz ze zienną $line done < /sciezka/plik |
Autor: | barte-k [ środa, 19 marca 2008, 14:19 ] |
Tytuł: | |
Hejka, przepraszam ze sie podpinam ale mam problemik mały Potzrebuję w bashu napisać skrypt, który z kodu html wyciągnął by dane. Kod jest prosty: <tr><td>Xyz Yzx</td><td>Zyx</td><td style="color: green">12:34</td></tr> Chodzi o to by zostało: Xyz Yzx Zyx 12:34 Maltertuje wlasnie grepy, sedy, awk -- opornie idzie... Wszelkie wskazówki mile widziane, dzięki. Dzieki |
Autor: | Albercik [ środa, 26 marca 2008, 18:18 ] |
Tytuł: | |
Podepnę się, aby nie zaczynać znów podobnego tematu. Potrzebuję znó pomocy, z pliku tekstowego wyciągam poszczególne kolumny poleceniem "cut". ale chciałbym, aby w wynikowym pliku kolumna 2 i 3 były zamienione, mianowicie: ale niestety to nie działa. Znacie jakiś prosty sposób na to? |
Autor: | viater [ środa, 26 marca 2008, 18:37 ] |
Tytuł: | |
awk - iem da się prawie wszystko. TUTAJ jest dobrze opisane. |
Autor: | Albercik [ środa, 26 marca 2008, 19:03 ] |
Tytuł: | |
viater pisze:
Jest prawie dobrze, ale kolumny muszą być odseparowane tabulatorami, nie spacjami. |
Autor: | viater [ środa, 26 marca 2008, 19:31 ] |
Tytuł: | |
Albercik pisze: Jest prawie dobrze, ale kolumny muszą być odseparowane tabulatorami, nie spacjami.
Nie ma problemu Można też tak: awk '{print $1"\t"$3"\t"$2"\t"$5"\t"$7}' przelewy.tmp >> przelewy.txt ale pierwsza wersja ładniej mi wygląda. |
Autor: | Albercik [ środa, 26 marca 2008, 22:05 ] |
Tytuł: | |
viater pisze: Albercik pisze: Jest prawie dobrze, ale kolumny muszą być odseparowane tabulatorami, nie spacjami. Nie ma problemu Można też tak: awk '{print $1"\t"$3"\t"$2"\t"$5"\t"$7}' przelewy.tmp >> przelewy.txt ale pierwsza wersja ładniej mi wygląda. Zostało tylko jedno, aby sam AWK nie reagował na spacje w tekście tylko tabulatory. --EDIT-- Sprawa rozwiązana: awk -F "\t" '{OFS="\t"} {print $1,$5,$3,$7}' przelewy.tmp >> przelewy.txt |
Autor: | viater [ czwartek, 27 marca 2008, 00:34 ] |
Tytuł: | |
Albercik pisze: Zostało tylko jedno, aby sam AWK nie reagował na spacje w tekście tylko tabulatory. Chciałoby się napisać: "RTFM", tym bardziej, że dałem linka A jednak: Albercik pisze: --EDIT--
Sprawa rozwiązana: awk -F "\t" '{OFS="\t"} {print $1,$5,$3,$7}' przelewy.tmp >> przelewy.txt Czyli widzę, że jednak link się przydał |
Autor: | Albercik [ czwartek, 27 marca 2008, 00:42 ] |
Tytuł: | |
viater pisze: Czyli widzę, że jednak link się przydał
Ależ oczywiście i bardzo dziękuję. |
Autor: | Albercik [ niedziela, 30 marca 2008, 21:15 ] |
Tytuł: | |
Następny problem ze skryptem. Potrzebuję pomocy, mianowicie: jest plik tekstowy, który zawiera jakiś ciąg znaków np "ąść" , chciałbym przepisać ten plik zastępując wszystkie ciągi "ąść" na "asc" . Da się? |
Autor: | JakubC [ niedziela, 30 marca 2008, 21:27 ] |
Tytuł: | |
Da się, użyj programu tr . |
Autor: | viater [ niedziela, 30 marca 2008, 22:47 ] |
Tytuł: | |
Albo sed |
Autor: | Albercik [ niedziela, 30 marca 2008, 23:31 ] |
Tytuł: | |
viater pisze: Albo sed
Dziękuję bardzo. Oczywiście podpowiedź znów trafiona. Jeśli ktoś chciałby to podam przykład - zamiana ę na e: |
Autor: | viater [ poniedziałek, 31 marca 2008, 00:04 ] |
Tytuł: | |
Albercik pisze: viater pisze: Albo sed Dziękuję bardzo. ... ma za co Albercik pisze: Jeśli ktoś chciałby to podam przykład - zamiana ę na e: A jeśli chcemy zrobić zmianę "w miejscu", czyli wynik zmiany zachować w tym samym pliku, to robimy: |
Autor: | Albercik [ poniedziałek, 31 marca 2008, 00:59 ] |
Tytuł: | |
Cytuj: sed -i -e 's/ę/e/g' plik
A co jeśli chcemy nie jeden a kilka znaków zamienić? |
Autor: | viater [ poniedziałek, 31 marca 2008, 01:08 ] |
Tytuł: | |
Albercik pisze: Cytuj: sed -i -e 's/ę/e/g' plik A co jeśli chcemy nie jeden a kilka znaków zamienić? Na przykład ? |
Autor: | Albercik [ poniedziałek, 31 marca 2008, 01:14 ] |
Tytuł: | |
viater pisze: Albercik pisze: Cytuj: sed -i -e 's/ę/e/g' plik A co jeśli chcemy nie jeden a kilka znaków zamienić? Na przykład ? chcę ę na e , ć na c , ź na z itd.... |
Strona 1 z 2 | Strefa czasowa UTC+2godz. |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |