[bash]logowania w html

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Najki0024
Piegowaty Guziec
Piegowaty Guziec
Posty: 18
Rejestracja: 22 maja 2008, 21:51
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

[bash]logowania w html

Post autor: Najki0024 »

Witam muszę napisać skrypt: Przygotować skrypt, który będzie generował stronę HTML w tabeli przedstawi login użytkownika, imię i nazwisko oraz max 3 daty ostatnich logowań. Jeżeli użytkownik logował się tylko 3 razy, to pozostałe okienka tabeli pozostaną puste.
Imię Nazwisko login logowanie 1 logowanie 2 logowanie 3
Jas Fasola jasiek 2009-02-10 2009-03-04 2009-04-13
Anna Miś annam 2008-12-12 2009-03-03 2009-05-15
Adam Ptyś adam 2009-05-25
Jak wynika z powyższej tabeli adam logował się tylko raz na serwerze.
Jeżeli dana osoba nigdy nie logowała się na serwerze, to tez powinna się znaleźć w tabelce, ale z pustymi kolumnami od 4 do 6 włącznie. Jeżeli ktoś się logował na serwerze 3 razy to wszystkie jego logowania powinny znaleźć się w tabeli. Jeżeli natomiast logował się na serwerze wielokrotnie, to w tabeli powinny znaleźć się tylko jego ostatnie 3 logowania.

Napisałem już plik html.txt

Kod: Zaznacz cały

<table BORDER="single" FRAME="box" STYLE="box">
   <tr><td>Imie</td><td>Nazwisko</td><td>login</td><td>Logowanie1</td><td>Logowanie2</td><td>Logoanie3</td></tr>
   <tr><td>Im1</td><td>Naz1</td><td>log1</td><td>l11</td><td>l12</td><td>l13</td></tr>
   <tr><td>Im2</td><td>Naz2</td><td>log2</td><td>l21</td><td>l22</td><td>l23</td></tr>
   <tr><td>Im3</td><td>Naz3</td><td>log3</td><td>l31</td><td>l32</td><td>l33</td></tr>
 </table>



Jak narazie kod skryptu to:

Kod: Zaznacz cały

#!/bin/bash

clear
cat html.txt > logowania.html


Później chciałbym komendą sed pozamieniać słowa im1, im2, l11, l22, ... na zmienne na których będą zapisane odpoiednie wartości i tu pojawia się problem. Po wpisaniu komendy last | tail -3 wyświetla mi się cała linia tekstu:

Kod: Zaznacz cały

najki    pts/0        :0.0             Wed Jun  3 14:33   still logged in  
Jak rozdzelić tą linie na kilka zmiennych, chodzi mi tu o to aby np. $log1=najki $l11=Wed Jun 3 14:33 itp.
terrapin
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 07 mar 2009, 08:24
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME

Odp: [bash]logowania w html

Post autor: terrapin »

zainteresuj sie czymś takim jak awk:

oto przyklad jego uzycia jakie potrzebujesz

plik file.txt wyglada tak:

Kod: Zaznacz cały

najki    pts/0        :0.0             Wed Jun  3 14:33   still logged in
w skrypcie piszesz:

Kod: Zaznacz cały

zmienna=`awk '{print $1}' file.txt`
echo $zmienna
wynik jego dzialania:

Kod: Zaznacz cały

najki
Najki0024
Piegowaty Guziec
Piegowaty Guziec
Posty: 18
Rejestracja: 22 maja 2008, 21:51
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [bash]logowania w html

Post autor: Najki0024 »

Wielkie dzięki;d

EDIT:
A jeszcze takie pytanie: poziomy text można rozbić wpisując parametry:

Kod: Zaznacz cały

zmienna=`awk '{print $1}' file.txt`
zmienna2=`awk '{print $2}' file.txt`
zmienna3=`awk '{print $3}' file.txt`
A pionowy??

Bo wszyscy ostatnio zalogowani użytkonicy są w jedej lini pod jednym parametrem(polkituser, haldaemon, najki):

Kod: Zaznacz cały

polkituser                                 **Nigdy nie zalogowany**
haldaemon                                  **Nigdy nie zalogowany**
najki            tty1                      wto maj 12 22:36:00 +0200 2009
terrapin
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 07 mar 2009, 08:24
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME

Odp: [bash]logowania w html

Post autor: terrapin »

seda juz znasz, wiec chyba najprościej

Kod: Zaznacz cały

sed 'num!d' plik.txt
gdzie zamiast num wpisujesz numer wiersza ktory chcesz wczytać
Awatar użytkownika
beluosus
Zakręcona Traszka
Zakręcona Traszka
Posty: 695
Rejestracja: 01 paź 2006, 15:32
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Odp: [bash]logowania w html

Post autor: beluosus »

Też awk'iem, każde drukowanie tyczy się każdego wiersza, sprawdź np:

Kod: Zaznacz cały

last -10 | awk '{print $1}'
A jak chcesz w jednej linii to np:

Kod: Zaznacz cały

last -10 | awk '{print $1}' | tr '\n' ' '
Kurs Linuksa: for i in $(ls /bin); do man $i; done
__________________
http://beluosus.pl/
Najki0024
Piegowaty Guziec
Piegowaty Guziec
Posty: 18
Rejestracja: 22 maja 2008, 21:51
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [bash]logowania w html

Post autor: Najki0024 »

Ok już wszystko działa, dzięki bardzo.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

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