Freesco, NND, CDN, EOS
http://forum.freesco.pl/

Wycinanie tekstu z pliku?
http://forum.freesco.pl/viewtopic.php?f=22&t=8768
Strona 1 z 1

Autor:  popcorn [ wtorek, 30 sierpnia 2005, 22:09 ]
Tytuł:  Wycinanie tekstu z pliku?

Witam, mam w sumie nietypowy problem jak na to forum, ale moze akurat ktos mi pomoze.
Chce wyciac z pliku okreslony ciag znakow jakims poleceniem w bash'u.
Chodzi mi o cos w stylu: "wytnij wyraz /home/plik"
A moze zle mysle? Moze to trzeba jakos inaczej zrobic?
Googluje juz od 3 godzin i nic :(

Porzebne mi to aby z poziomu www za pomoca cgi-bin zmieniac plik na serwerze, a dokladniej dodawac i odejmowac adres ip.

Bede wdzieczny za wszelka pomoc.
Pozdrawiam
Popcorn

Autor:  Mis' [ wtorek, 30 sierpnia 2005, 22:20 ]
Tytuł:  Re: Wycinanie tekstu z pliku?

popcorn pisze:
Chce wyciac z pliku okreslony ciag znakow jakims poleceniem w bash'u.
Chodzi mi o cos w stylu: "wytnij wyraz /home/plik"
A moze zle mysle? Moze to trzeba jakos inaczej zrobic?


możliwych rozwiązań moze być bardzo dużo (wliczajac bezsensowne, ale działające). Podaj format danych wejściowych i co chcesz uzyskać na wyjściu.
Podaj również jakie oprogramowanie masz dostępne.

Autor:  popcorn [ wtorek, 30 sierpnia 2005, 22:40 ]
Tytuł: 

Chodzi mi o to aby wycinac okreslone adresy ip z pliku z adresami komputerow z zablokowanym netem. (Troche za duzo "z" wyszlo:) )

plik wyglada tak:
192.168.34.11
192.168.34.23
192.168.34.24
192.168.34.32

Adresy dodaje z www przez link http://192.168.34.1:84/cgi-bin/blokuj.pl?192.168.34.23

plik blokuj.pl wyglada tak:

#!/bin/bash
echo $QUERY_STRING >> /etc/firewall/IP_Redirect


Problem teraz w tym co wpisac w pliku odblokuj.pl aby po wywolaniu http://192.168.34.1:84/cgi-bin/odblokuj ... .168.34.23 ten adres zostal usuniety z pliku IP_Redirect.

Nie wiem czy to ma jakies znaczenie ale uzywam starego NND.

Autor:  czerwo [ wtorek, 30 sierpnia 2005, 22:46 ]
Tytuł: 

kasuje cala linie zawierajaca dw
echo -e "raz\ndwa" | sed '/dw/d'
to samo co sed -i '/dw/d' PLIK

kasuje okreslone slowa
echo "slowo slowo"|sed 's/slowo//g'
to samo co
sed -i 's/slowo//g'

PODZIEKOWANIA DLA MACIEKS

mozna tez ;]
cat plik | grep -v "ip" nie wiem czy nie trzeba dodac jeszcze -w czyli grep -w -v "ip" > plik

Autor:  Mis' [ wtorek, 30 sierpnia 2005, 23:08 ]
Tytuł: 

popcorn pisze:
Chodzi mi o to aby wycinac okreslone adresy ip z pliku z adresami komputerow z zablokowanym netem. (Troche za duzo "z" wyszlo:) )

plik wyglada tak:
192.168.34.11
192.168.34.23
192.168.34.24
192.168.34.32

Adresy dodaje z www przez link http://192.168.34.1:84/cgi-bin/blokuj.pl?192.168.34.23

plik blokuj.pl wyglada tak:

#!/bin/bash
echo $QUERY_STRING >> /etc/firewall/IP_Redirect


Problem teraz w tym co wpisac w pliku odblokuj.pl aby po wywolaniu http://192.168.34.1:84/cgi-bin/odblokuj ... .168.34.23 ten adres zostal usuniety z pliku IP_Redirect.

Nie wiem czy to ma jakies znaczenie ale uzywam starego NND.


nadal nie do końca rozumiem... z tego co napisałeś to z jednego pliku chcesz czytać a do drugiego pisać... nie łatwiej skopiować plik?
co to za zmienna $QUERY_STRING? czy ona ma zawierać adres który wyciągasz z pliku?

zobacz może coś ci podpasuje:

grep 'wzorzec' /scieżka/plik - wypisze na stdout wszystkie linie zawierające wzorzec
sed -n '/wzorzec/p' /sciezka/plik - to samo sedem
sed -n 'mp' /sciezka/plik - podobnie ale wypisze m-tą linię
awk '/wzorzec/ {print$n}' /sciezka/plik - wyciągnie z linii zawierającej wzorzec n-ty "fragment" ("fragmenty" oddzielone są spacjami lub tabulatorami, można to zmienić)

Autor:  popcorn [ wtorek, 30 sierpnia 2005, 23:49 ]
Tytuł: 

Cytuj:
Chodzi mi o to aby wycinac okreslone adresy ip z pliku z adresami komputerow z zablokowanym netem


Faktycznie zle napisalem. Skrypt odblokuj.pl ma usuwac a nie wycinac okreslone wpisy z pliku IP_Redirect. Odwrotnie niz blokuj.pl, bo ten te wpisy umieszcza w tym pliku. A zmienna $QUERY_STRING ma sluzyc do przekazania skryptowi ciągu znakow do usuniecia. Caly czas operuje na jednym pliku. Jeden skrypt ma do niego wpisywac adresy ip a drugim chce usuwac okreslone ip.
Chce zeby po wywolaniu http://192.168.34.1:84/cgi-bin/odblokuj ... .168.34.23 - ciag znakow 192.168.34.23 zostal usuniety na stale z pliku IP_Redirect.
Nie wiem co mam wpisac w skrypcie odblokuj.pl

Autor:  Mis' [ wtorek, 30 sierpnia 2005, 23:54 ]
Tytuł: 

popcorn pisze:
Cytuj:
Chodzi mi o to aby wycinac okreslone adresy ip z pliku z adresami komputerow z zablokowanym netem


Faktycznie zle napisalem. Skrypt odblokuj.pl ma usuwac a nie wycinac okreslone wpisy z pliku IP_Redirect. Odwrotnie niz blokuj.pl, bo ten te wpisy umieszcza w tym pliku. A zmienna $QUERY_STRING ma sluzyc do przekazania skryptowi ciągu znakow do usuniecia. Caly czas operuje na jednym pliku. Jeden skrypt ma do niego wpisywac adresy ip a drugim chce usuwac okreslone ip.
Chce zeby po wywolaniu http://192.168.34.1:84/cgi-bin/odblokuj ... .168.34.23 - ciag znakow 192.168.34.23 zostal usuniety na stale z pliku IP_Redirect.
Nie wiem co mam wpisac w skrypcie odblokuj.pl


sed -i '/wzorzec/d' /sciezka/plik - kasuje linię zawierającą wzorzec
sed -i '/^wzorzec/d' /sciezka/plik - kasuje linię zawierającą wzorzec na początku linii
sed -i '/wzorzec$/d' /sciezka/plik - kasuje linię zawierającą wzorzec na końcu linii

Autor:  popcorn [ środa, 31 sierpnia 2005, 00:03 ]
Tytuł: 

Wielkie dzieki za pomoc dokladnie o to chodzilo. Dziala jak nalezy.

Pozdrowienia.

Autor:  Mis' [ środa, 31 sierpnia 2005, 00:12 ]
Tytuł: 

czerwo pisze:
mozna tez ;]
cat plik | grep -v "ip" nie wiem czy nie trzeba dodac jeszcze -w czyli grep -w -v "ip" > plik


zakręcone i ze zdechłym kotem... to powinno być karane.
a co byś powiedział na:

grep -v 'ip' /sciezka/plik > /sciezka/plik2
mv /sciezka/plik2 /sciezka/plik

ale to też bez sensu - sed potrafi czytać i pisać w tym samym pliku

Autor:  czerwo [ środa, 31 sierpnia 2005, 01:11 ]
Tytuł: 

chyba ze ktos nie zna seda ;]

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/