Freesco, NND, CDN, EOS http://forum.freesco.pl/ |
|
Pisanie skryptów http://forum.freesco.pl/viewtopic.php?f=22&t=11317 |
Strona 1 z 1 |
Autor: | kolos666 [ niedziela, 19 lutego 2006, 20:43 ] |
Tytuł: | Pisanie skryptów |
Witam Potrzebuje napisać prosty skrypt Mam plik np. /etc/klienci nr:1 nazwisko:koza port:6677 id:343 ip:192.168.1.100 nr:2 nazwisko:dedek port:6678 id:322 ip:192.168.1.120 i plik wykonywalny np. /etc/blokada i np uruchamiam plik blokada z parametrem -2 ./blokada -2 to plik żeby wykonał operacje iptables INPUT -p 6677 -a drop <- wiem że źle ale to nie ważne echo koza Nie potrzebuje tego skryptu do tego celu to tylko przykład !!!! co musze napisać za 6677 żeby skrypt odczytał tą wartość z pliku /etc/klienci z 2 lini z sekcji port: i nie cztrał delej sekcji id i ip ???? |
Autor: | kolos666 [ niedziela, 19 lutego 2006, 21:20 ] |
Tytuł: | |
w dosie była bałwan jestem find "port:" ale ona wyświetlała wszystko do końca linijki. |
Autor: | puchatek007 [ niedziela, 19 lutego 2006, 22:47 ] |
Tytuł: | |
polecenie: cat /etc/klienci | grep "koza" | awk '{print $3 }' | sed 's/port://g' Może cie nakieruje. |
Autor: | kolos666 [ niedziela, 19 lutego 2006, 22:57 ] |
Tytuł: | |
zaraz będe to testował ale co to "awk '{print $3 }' | sed 's/port://g'" mniej więcej oznacza Ps. wiem że to łatwe pytanko ale nie mam czasu sprawdzać czym się różnią #/bin/sh od #/bin/bash <- to akurat potrzebuje do tunera philipsa 6010 do którego uclinux'a jakiegoś starego wgrałem |
Autor: | puchatek007 [ niedziela, 19 lutego 2006, 23:04 ] |
Tytuł: | |
awk '{print $3 }' Ciąg znaków podzieli (znakiem dzielącym jest spacja) i zrobi tak jakby tablice gdzie właśnei 3 elementem będzie ciąg port:6677. sed 's/port://g' To z kolej zamieni ciag "port:" na null czyli usunie ten ciąg. To oczywiście takie moje tłuamczenie. WIęcej znajdziesz w manualach. |
Autor: | Mis' [ poniedziałek, 20 lutego 2006, 00:38 ] |
Tytuł: | |
puchatek007 pisze: awk '{print $3 }' Ciąg znaków podzieli (znakiem dzielącym jest spacja)
póki nie zastosowana jest opcja -F znakiem dzielącym jest dowolna ilość spacji lub tabulatorów. |
Autor: | Mis' [ poniedziałek, 20 lutego 2006, 00:46 ] |
Tytuł: | |
puchatek007 pisze: polecenie: cat /etc/klienci | grep "koza" | awk '{print $3 }' | sed 's/port://g'
Może cie nakieruje. to oczywiście zadziała... ale - cztery procesy zamiast jednego. Jak już używasz awk to pozostałe nie są ci potrzebne. A szczególnie użycie cat, grep i awk razem mija się z celem. awk '/koza/ {print$3}' /scieżka/plik | sed 's/port\://' bez bicia przyznaję, że nie pamiętam jak podmienić ciągi znaków w awk (stąd pozostawiony sed), ale da się i całe wyrażenie robi się o wiele prostsze. W ogóle używanie 'cat' w scriptach zazwyczaj jest błędem... |
Autor: | kolos666 [ poniedziałek, 20 lutego 2006, 00:58 ] |
Tytuł: | |
Wielkie dzięki miś |
Autor: | MAC!EK [ poniedziałek, 20 lutego 2006, 02:53 ] |
Tytuł: | |
Strona 1 z 1 | Strefa czasowa UTC+2godz. |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |