[bash] Wyciaganie "zmiennego" info z pliku, i zapisywanie w innym pliku.

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
maxblink
Piegowaty Guziec
Piegowaty Guziec
Posty: 27
Rejestracja: 25 cze 2008, 14:39
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

[bash] Wyciaganie "zmiennego" info z pliku, i zapisywanie w innym pliku.

Post autor: maxblink »

Witam, mam takie pytanie:

mam pliki z nazwami uzytkownikow a w nim, mam linijke dotyczaca informacji z jakiego ip dany uzytkownik sie logowal, i czy jest opcja zeby... co wejdze z innego ip ... zapisywalo mi to info do pliku ?
Awatar użytkownika
moridin
Sędziwy Jeż
Sędziwy Jeż
Posty: 57
Rejestracja: 06 gru 2008, 15:21
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Kontakt:

Odp: [bash] Wyciaganie "zmiennego" info z pliku, i zapisywanie w innym pliku.

Post autor: moridin »

Miło by było jakbyś podał przykład pliku (jak u Ciebie to wygląda) i jak ma to wyglądać po przetworzeniu.
May the Source Be With You!
[AMD Duron(tm) 999.348 MHz | 503.4 SDR | Gigabyte GeForce 7600 GS 512 DDR2] :-P
http://scripts-zone.info/
maxblink
Piegowaty Guziec
Piegowaty Guziec
Posty: 27
Rejestracja: 25 cze 2008, 14:39
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

Odp: [bash] Wyciaganie "zmiennego" info z pliku, i zapisywanie w innym pliku.

Post autor: maxblink »

to tak, w pliku jest cos takiego:

lokalizacja :

Kod: Zaznacz cały

/home/xxx/pvpgn/var/users/
treść:

"BNET\\auth\\command_groups"="9"
"BNET\\auth\\lock"="true"
"Record\\w3xp\\orcs\\wins"="1500"
"BNETD\\flag\\initial"="0x00000070"
"BNET\\acct\\ctime"="1208174438"
"BNET\\acct\\userid"="39"
"friend\\0\\uid"="2"
"BNET\\acct\\username"="mul-XX"
"friend\\1\\uid"="17"
"BNET\\acct\\passhash1"="f2e6411b2142be9752156fdc9d49c6a832f2cf1e"
"BNETD\\flag\\initiwal"="0x00000070"
"friend\\count"="3"
"BNET\\acct\\lastlogin_owner"="XX"
"profile\\sex"=""
"profile\\location"=""
"BNET\\auth\\lockk"="false"
"profile\\description"="matti = um\r\nkus = wbg"
"BNET\\acct\\lastlogin_clienttag"="D2XP"
"BNET\\acct\\lastlogin_time"="1229710706"
"friend\\2\\uid"="9"
"BNET\\acct\\email"=""
"BNET\\acct\\lastlogin_ip"="215.136.174.233"

wyzej wymieniony plik nazywa sie, mul-XX gdzie wielkosc znakow jest istotna

istota jest linia:

Kod: Zaznacz cały

"BNET\\acct\\lastlogin_ip"="215.136.174.233"
ktora nie zawsze jest na koncu, plikow tych jest kilka set, i chodzi o to ze, mam plik w

Kod: Zaznacz cały

/home/xxx/wyniki/logowanie
i chcialbym aby w nim zapisywalo wszystkie logowania tzn, zeby wygladalo to mniejwiecej na tej zasadzie:

nazwa_konta1
212.122.33.1
121.22.3.123

nazwa_konta2
195.121.33.33

nazwa_konta3
212.122.33.1
121.22.3.123
195.121.33.33

itd, gdzie nazwa konta znajduje sie w tej linii

Kod: Zaznacz cały

"BNET\\acct\\username"="mul-XX"
dawidgarus
Wytworny Kaczor
Wytworny Kaczor
Posty: 418
Rejestracja: 09 lut 2007, 23:17
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: [bash] Wyciaganie "zmiennego" info z pliku, i zapisywanie w innym pliku.

Post autor: dawidgarus »

czyli nazwa pliku jest jednocześnie nazwą usera?

Kod: Zaznacz cały

output="wynik.txt"
for i in /home/xxx/pvpgn/var/users/*; do
echo `basename $i` >> $output
cat $i | egrep -o '([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})' >> $output
echo >> $output
done
maxblink
Piegowaty Guziec
Piegowaty Guziec
Posty: 27
Rejestracja: 25 cze 2008, 14:39
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

Odp: [bash] Wyciaganie "zmiennego" info z pliku, i zapisywanie w innym pliku.

Post autor: maxblink »

hmm tzn nazwa pliku w:

pvpgn/var/users

odpowiada nazwie usera

ale ale chce zeby wynik zapisywal sie w /home/xxx/wyniki/ i tutaj powiedzmy w pliku o nazwie logowanie, zeby zapisywalo tak jak wyzej napisalem;]
dawidgarus
Wytworny Kaczor
Wytworny Kaczor
Posty: 418
Rejestracja: 09 lut 2007, 23:17
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: [bash] Wyciaganie "zmiennego" info z pliku, i zapisywanie w innym pliku.

Post autor: dawidgarus »

no to w zmiennej output w moim w/w skrypcie podajesz ścieżkę:

Kod: Zaznacz cały

output="/home/xxx/wyniki/logowanie"
możesz zapisać kod jako skrypt, lub po prostu całość wkleić do konsoli...
maxblink
Piegowaty Guziec
Piegowaty Guziec
Posty: 27
Rejestracja: 25 cze 2008, 14:39
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

Odp: [bash] Wyciaganie "zmiennego" info z pliku, i zapisywanie w innym pliku.

Post autor: maxblink »

to jak dam mu pozniej chmod 777 i dodam do crona to powinno sprawdzac i dopisywac na bieżaco ?
dawidgarus
Wytworny Kaczor
Wytworny Kaczor
Posty: 418
Rejestracja: 09 lut 2007, 23:17
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: [bash] Wyciaganie "zmiennego" info z pliku, i zapisywanie w innym pliku.

Post autor: dawidgarus »

dopisywać nie, a przynajmniej raczej nie w pożądany sposób. dopisz do skryptu jeszcze:

Kod: Zaznacz cały

rm $output
przed for. plik będzie tworzony na nowo za każdym razem...
maxblink
Piegowaty Guziec
Piegowaty Guziec
Posty: 27
Rejestracja: 25 cze 2008, 14:39
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

Odp: [bash] Wyciaganie "zmiennego" info z pliku, i zapisywanie w innym pliku.

Post autor: maxblink »

#!/bin/bash

output="/home/xxx/wyniki/logowanie"
rm $output for i in /home/xxx/pvpgn/var/users/*; do
echo `basename $i` >> $output
cat $i | egrep -o
'([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})' >> $output
echo >> $output
done
to mam tak ale wywala mi errory, a i jak wejde w plik "logowanie" to widze tylko nazwy uzytkownikow "czyli tych plikow co sa w users".

i odnosnie zapisu tych adresow ip, czy one beda dopisywane na biezaco, co wejscie przez uzytkownika z innego ip?
dawidgarus
Wytworny Kaczor
Wytworny Kaczor
Posty: 418
Rejestracja: 09 lut 2007, 23:17
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: [bash] Wyciaganie "zmiennego" info z pliku, i zapisywanie w innym pliku.

Post autor: dawidgarus »

ech... po

Kod: Zaznacz cały

rm $output
ma być [ENTER]. wydawało mi się to oczywiscte... jednak nie jest.

adresy nie będą dopisywane, tylko cała lista zostanie stworzona na nowo, przy każdorazowym uruchomieniu skryptu
maxblink
Piegowaty Guziec
Piegowaty Guziec
Posty: 27
Rejestracja: 25 cze 2008, 14:39
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

Odp: [bash] Wyciaganie "zmiennego" info z pliku, i zapisywanie w innym pliku.

Post autor: maxblink »

ale wlasnie ;] chodzi mi o cos takiego co by sprawdzalo i w razie adres by byl inny - dopisalo by go w odpowiednie miejsce. Czy takie cos jest mozliwe?
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

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