Freesco, NND, CDN, EOS

http://www.freesco.pl
Dzisiaj jest poniedziałek, 23 czerwca 2025, 20:03

Strefa czasowa UTC+2godz.




Nowy temat Odpowiedz w temacie  [ Posty: 23 ]  Przejdź na stronę 1, 2  Następna
Autor Wiadomość
Post: czwartek, 19 kwietnia 2007, 10:47 
Offline
PGF

Rejestracja: sobota, 15 marca 2003, 13:54
Posty: 2780
w pliku "ipki" są wpisane IP jedne pod drugimi. Chciałbym z tego pliku wyłowić zadane IP i robię:

: [/] [] ()
cat ipki | grep 192.168.1.24


ale wynik jest następujący:
: [/] [] ()
192.168.1.24
192.168.1.240
192.168.1.241
192.168.1.242
192.168.1.243


jak zrobić to tak, aby TYLKO zadane IP wyłowiło z pliku ?


Na górę
 Wyświetl profil  
 
Post: czwartek, 19 kwietnia 2007, 10:54 
Offline
MODERATOR

Rejestracja: piątek, 5 lipca 2002, 17:31
Posty: 2449
Lokalizacja: Londyn
Albercik pisze:
w pliku "ipki" są wpisane IP jedne pod drugimi. Chciałbym z tego pliku wyłowić zadane IP i robię:

: [/] [] ()
cat ipki | grep 192.168.1.24


ale wynik jest następujący:
: [/] [] ()
192.168.1.24
192.168.1.240
192.168.1.241
192.168.1.242
192.168.1.243


jak zrobić to tak, aby TYLKO zadane IP wyłowiło z pliku ?


Po pierwsze nie męcz kotów :-)
Po drugie, znaczek ^ oznacza początek, a znaczek $ koniec linii. Już wiesz? Brawo! dokładnie tak:

grep '192.168.1.24$' nazwa_pliku

Powyższe oczywiście nie zadziała jeśli po adresie IP będą spacje, tabulatory lub inne znaki niedrukowane.
A za karę w manualu poszukaj opcji -w...

_________________
Mis'
___________________________________
"Real Men Use Telnet on port 80" (el bid)


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: czwartek, 19 kwietnia 2007, 11:00 
Offline
PGF

Rejestracja: sobota, 15 marca 2003, 13:54
Posty: 2780
Chwała Ci za to Dobry Człowieku :)


Na górę
 Wyświetl profil  
 
Post: czwartek, 19 kwietnia 2007, 14:08 
Offline
PGF

Rejestracja: piątek, 25 lutego 2005, 18:22
Posty: 1430
Lokalizacja: Elbląg
Mis' pisze:
grep '192.168.1.24$' nazwa_pliku

Wystarczyłoby
: [/] [] ()
grep '192.168.1.24 ' plik

czyli spacja zamiast $.

_________________
F33/F07,F11,F13,F17
ObrazekObrazek


Na górę
 Wyświetl profil  
 
Post: czwartek, 19 kwietnia 2007, 15:16 
Offline
MODERATOR

Rejestracja: piątek, 5 lipca 2002, 17:31
Posty: 2449
Lokalizacja: Londyn
viater pisze:
Mis' pisze:
grep '192.168.1.24$' nazwa_pliku

Wystarczyłoby
: [/] [] ()
grep '192.168.1.24 ' plik

czyli spacja zamiast $.


ilość znaków ta sama... a Albercik mówił, że w każdej linii jest tylko adres ip więc te spacje co ich chcesz szukać grepem trzeba by dopisywac...
a w ogóle to chyba grep -w 192.168.1.24 powinien sobie poradzić.
There is so many ways to skin a cat... :P

_________________
Mis'
___________________________________
"Real Men Use Telnet on port 80" (el bid)


Na górę
 Wyświetl profil  
 
Post: czwartek, 19 kwietnia 2007, 16:26 
Offline
PGF

Rejestracja: piątek, 25 lutego 2005, 18:22
Posty: 1430
Lokalizacja: Elbląg
Mis' pisze:
ilość znaków ta sama... a Albercik mówił, że w każdej linii jest tylko adres ip więc te spacje co ich chcesz szukać grepem trzeba by dopisywac...

Fakt :oops:
Zagalopowałem się, bo niedawno wyciągałem grepem linie z zadanym IP z `cat /proc/net/ip_conntrack` i wtedy wystarczyło dać spację na końcu...

_________________
F33/F07,F11,F13,F17
ObrazekObrazek


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: piątek, 20 kwietnia 2007, 00:45 
Offline
Użytkownik

Rejestracja: sobota, 14 maja 2005, 15:07
Posty: 3177
Lokalizacja: Busko-Zdrój
a tak nie mozna:

cat ipki | grep 192.168.1.24[[:space:]]

_________________
Pomógł? wypij jego zdrowie.
http://nnd-linux.pl/faq.php
http://wiki.nnd.freesco.pl/index.php/FAQ


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: piątek, 20 kwietnia 2007, 09:44 
Offline
MODERATOR

Rejestracja: piątek, 5 lipca 2002, 17:31
Posty: 2449
Lokalizacja: Londyn
-MW- pisze:
a tak nie mozna:

cat ipki | grep 192.168.1.24[[:space:]]


nieuważnie czytasz. Po pierwsze męczysz kota, co jest kompletnie zbędne, a po drugie (co już zauważyłem odpowiadając Viaterowi) w pliku o którym mówi Albercik nie ma żadnych znaków po adresie IP...
Gdybyś powyższe zapisał tak:

grep 192.168.1.24[[:space:]]* nazwa_pliku

to pokrywało by to sytuację gdy po adresie IP jest zero lub więcej spacji/tabulatorów (ale nie innych znaków). I takiego wyrażenia Albercik by mógł użyć, gdyż obejmowałoby swoim zasięgiem sytuację którą ma w swoich plikach. Z tym, że to wyrażenie byłoby nadmiarowe, gdyż on w swoim pliku nie ma żadnych znaków po adresie IP. Dlatego w tym przypadku najsensowniejsze wydaje się użycie wyrażenia ze znakiem końca linii.

_________________
Mis'
___________________________________
"Real Men Use Telnet on port 80" (el bid)


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: piątek, 20 kwietnia 2007, 10:13 
Offline
Użytkownik

Rejestracja: sobota, 14 maja 2005, 15:07
Posty: 3177
Lokalizacja: Busko-Zdrój
pod warunkiem ze przypadkiem nie postawi mu sie spacja ;)
w wowczas we wspomnianym wyzej przypadku sypnie beledami.
czyli najbezpieczniej wydaje mi sie uzyc wlasnie takiej skladni.

_________________
Pomógł? wypij jego zdrowie.
http://nnd-linux.pl/faq.php
http://wiki.nnd.freesco.pl/index.php/FAQ


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: piątek, 20 kwietnia 2007, 10:20 
Offline
MODERATOR

Rejestracja: sobota, 30 lipca 2005, 14:08
Posty: 3984
Lokalizacja: Rzeszów
Najbezpieczniej i najlogiczniej jest skorzystac z opcji jakie oferuje grep, a nie kombinowac jak kon pod gorke:
grep -w 192.168.1.24

_________________
FAQ dla NND: http://nnd-linux.pl/faq.php
Doswiadczenie, to cos, co zdobywasz tuz po chwili w ktorej go potrzebowales.


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: niedziela, 22 kwietnia 2007, 16:17 
Offline
PGF

Rejestracja: sobota, 15 marca 2003, 13:54
Posty: 2780
Obydwa sposoby sprawują się bez zarzutów :
"grep -w 192.168.1.24 nazwa_pliku" oraz "grep '192.168.1.24$' nazwa_pliku"
Dzięki za pomoc. Troszkę więcej wygibasów trzeba wykonać jeśli zamiast IP podstawia się zmienną w pierwszym przypadku....

: [/] [] ()
grep "^${IP_KOM}$" nazwa_pliku


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: niedziela, 29 kwietnia 2007, 00:49 
Offline
PGF

Rejestracja: sobota, 15 marca 2003, 13:54
Posty: 2780
Jeszcze jedno pytanko : jak zrobić pętlę , aby czytała np. wyrazy czy liczby z pliku linia po linii ?


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: niedziela, 29 kwietnia 2007, 00:57 
Offline
MODERATOR

Rejestracja: sobota, 30 lipca 2005, 14:08
Posty: 3984
Lokalizacja: Rzeszów
: [/] [] ()
#!/bin/bash
while read line; do
echo $line
echo "nowa linia"
done < dane

ten skrypt bedzie wypisywal kolejne linie z pliku dane i po kazdej dodawal "nowa linia"

_________________
FAQ dla NND: http://nnd-linux.pl/faq.php
Doswiadczenie, to cos, co zdobywasz tuz po chwili w ktorej go potrzebowales.


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: poniedziałek, 30 kwietnia 2007, 20:52 
Offline
Użytkownik

Rejestracja: niedziela, 18 maja 2003, 22:55
Posty: 386
Lokalizacja: Rzeszów
podepne sie:

jak mozna polaczyc dwa warunki w petli if...then?

np. if [ "$1" = "start" ]; then

i if [ "$2" = "IP" ]; then

_________________
------------------------
HOUSE music


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: poniedziałek, 30 kwietnia 2007, 21:44 
Offline
PGF

Rejestracja: piątek, 25 lutego 2005, 18:22
Posty: 1430
Lokalizacja: Elbląg
tassman pisze:
podepne sie:

jak mozna polaczyc dwa warunki w petli if...then?

np. if [ "$1" = "start" ]; then

i if [ "$2" = "IP" ]; then


if [ "$1" = "start" ] && [ "$2" = "IP" ]; then
...
fi

_________________
F33/F07,F11,F13,F17
ObrazekObrazek


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: poniedziałek, 30 kwietnia 2007, 21:45 
Offline
Użytkownik

Rejestracja: sobota, 14 maja 2005, 15:07
Posty: 3177
Lokalizacja: Busko-Zdrój
Cytuj:
#!/bin/bash
while read wyraz1 wyraz2 wyraz3 wyraz4 ; do
echo $line
echo "nowa linia"
done < dane



Cytuj:
if [ "$1" = "start" -a "$2" = "IP" ]; then
if [ "$1" = "start" -o "$2" = "IP" ]; then



-a and
-o or

_________________
Pomógł? wypij jego zdrowie.
http://nnd-linux.pl/faq.php
http://wiki.nnd.freesco.pl/index.php/FAQ


Ostatnio zmieniony poniedziałek, 30 kwietnia 2007, 21:48 przez -MW-, łącznie zmieniany 2 razy

Na górę
 Wyświetl profil  
 
 Tytuł:
Post: poniedziałek, 30 kwietnia 2007, 21:47 
Offline
MODERATOR

Rejestracja: piątek, 5 lipca 2002, 17:31
Posty: 2449
Lokalizacja: Londyn
tassman pisze:
podepne sie:

jak mozna polaczyc dwa warunki w petli if...then?

np. if [ "$1" = "start" ]; then

i if [ "$2" = "IP" ]; then



Na przykład tak:

: [/] [] ()
if [ $1 = start -a $2 = IP ]; then
      #polecenia jeśli powyższe jest prawdą
fi


albo

: [/] [] ()

if [ $1 = start ]; then
   if [ $2 = IP ]; then
       #polecenia
   fi
fi


_________________
Mis'
___________________________________
"Real Men Use Telnet on port 80" (el bid)


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: wtorek, 1 maja 2007, 08:40 
Offline
Użytkownik

Rejestracja: niedziela, 18 maja 2003, 22:55
Posty: 386
Lokalizacja: Rzeszów
w takowym skrypcie, na moje potrzeby parametr help wylowuje prawidlowo, natomiast parametr: start i koncowka IP niestety nie.

#!/bin/bash
# Wyświetlenie tekstu pomocy
#############################################################################

if [ "$1" = "help" ]; then
echo "przypominacz V0.1 2007-04-30 (C) tassman 2006 dla NND"
echo "Włączanie i wyłączanie przypominania"
echo "--------------------------------------------"
echo "Uzycie:"
echo "przypomnienie parametr1 parametr2"
echo "parametr1 -> start stop check help"
echo "parametr2 -> ADRES_IP"
echo " "
else
echo " "
echo "Podales zly parametr"

fi

#Start przypomnienia
#############################################################################

if [ "$1" = start -a "$2" = "" ]; then

echo "Przypomnienia wlaczone dla 192.168.1$2"
iptables -A PREROUTING -t nat -s 192.168.1.$2 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:82 -m limit --limit 60/h --limit-burst

fi

_________________
------------------------
HOUSE music


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: wtorek, 1 maja 2007, 10:29 
Offline
PGF

Rejestracja: piątek, 25 lutego 2005, 18:22
Posty: 1430
Lokalizacja: Elbląg
Wstaw w warunkach "==" zamiast "=" i będzie dobrze.
"=" jest operatorem podstawienia, zaś operatorem porównania (którego powinieneś użyć) jest właśnie "==".

Poczytaj o operatorach.

_________________
F33/F07,F11,F13,F17
ObrazekObrazek


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: środa, 9 maja 2007, 09:08 
Offline
Użytkownik

Rejestracja: niedziela, 18 maja 2003, 22:55
Posty: 386
Lokalizacja: Rzeszów
#!/bin/bash
# Wyświetlenie tekstu pomocy
#############################################################################

if [ "$1" = "help" ]; then
echo "przypominacz V0.1 2007-04-30 (C) tassman 2006 dla NND"
echo "Włączanie i wyłączanie przypominania"
echo "--------------------------------------------"
echo "Uzycie:"
echo "przypomnienie parametr1 parametr2 parametr 3"
echo "parametr1 -> start stop check help"
echo "parametr2 -> ADRES_IP"
echo "parametr3 -> czestotliwosc"
echo " "
else
echo " "
echo "Podales zly parametr"

fi

#Start przypomnienia
#############################################################################

if [ "$1" = "start" ] && [ "$2" == "" ]; then

echo "Przypomnienia wlaczone dla 192.168.1.$2"
iptables -A PREROUTING -t nat -s 192.168.1.$2 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:82 -m limit --limit 60/h --limit-burst 1

fi


dalej to samo, probwalem jeszcze kilku innych sztyczek ale cos nie tak... popatrzcie prosze

_________________
------------------------
HOUSE music


Na górę
 Wyświetl profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 23 ]  Przejdź na stronę 1, 2  Następna

Strefa czasowa UTC+2godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 25 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
cron
Technologię dostarcza phpBB® Forum Software © phpBB Group
Hosting: Compus-Net
RobertKonik.pl