Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2008-02-09 16:27:48

  zyga - Użytkownik

zyga
Użytkownik
Zarejestrowany: 2005-08-25

awk problem ze znakiem %

hejka

chciałem zastosować poniższy skrypt:

awk '{printf("echo -en `date -d '"'1970-01-01 %s sec'"' +"'" %Y-%m-%d %T  "'"` %s %s %s %s %s %s %s %s %s; echo '"''"' \n ", $1, $2, $3, $4, $5, $6 ,$7, $8, $9 $10 );}' < plik_we > plik_wy

i jak nie trudno się domyślić mam problem :( Mianowicie AWK rzuca mi błędem aporpo "%Y-%m-%d %T" a dokładnie chodzi mu o znaki procenta %. Czy ma ktoś jakiś pomysł żeby to obejść ??

Z góry bardzo dziękuje


apt-get remove windows ....
apt-get install debian :)

Offline

 

#2  2008-02-09 16:57:00

  HunteR - DUG

HunteR
DUG
Skąd: ?
Zarejestrowany: 2006-03-14

Re: awk problem ze znakiem %

rozjaśnił co ma robić ten skrypt wtedy będzie łatwiej pomóc


...

Offline

 

#3  2008-02-09 23:46:06

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: awk problem ze znakiem %

cos zaplatales sie z wstawianiem znakow " i ', pozatym w printf % trzeba zabezpieczac jako %% ... cos takiego dziala:

Kod:

awk '{printf("echo -e `date -d \"1970-01-01 %s sec\" + \"%%Y-%%m-%%d %%T\"` %s %s %s %s %s %s %s %s %s;", $1, $2, $3, $4, $5, $6 ,$7, $8, $9, $10 );}'

nie wiem czy nie pominolem jakis waznych " lub ' ale tamto polecenie jest na tyle niejasne ze trudno sie zorientowac ...


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#4  2008-02-10 01:09:12

  zyga - Użytkownik

zyga
Użytkownik
Zarejestrowany: 2005-08-25

Re: awk problem ze znakiem %

już tłumacze

mianowice to polecenie konwertuje mi datę w pliku squida, wiem że jest prościej zrobić to:

date -d@..... ale na jednym serwerze jest tak stara wersja Debianka, że nie chce mi to polecenie działać a robiąc to w tej sposób przygotowuje mi gotowy skrypt, którego jak uruchomie pokazuje mi logi squida w zjadliwym formacie. 


awk '{printf("echo -en `date -d '"'1970-01-01 %s sec'"' +"'" %Y-%m-%d %T  "'"` %s %s %s %s %s %s %s %s %s; echo '"''"' \n ", $1, $2, $3, $4, $5, $6 ,$7, $8, $9 $10 );}' < plik_we > plik_wy

Dziękuje za odpowiedzi ;)


apt-get remove windows ....
apt-get install debian :)

Offline

 

#5  2008-02-10 02:13:54

  HunteR - DUG

HunteR
DUG
Skąd: ?
Zarejestrowany: 2006-03-14

Re: awk problem ze znakiem %

Spróbuj tak:

Kod:

for data in $(cat /var/log/squid/access.log | awk '{print $1}'); do echo $(date -d "1970-01-01 $data sec" "+%F %T" ); done > plik_wy

...

Offline

 

#6  2008-02-11 08:13:17

  zyga - Użytkownik

zyga
Użytkownik
Zarejestrowany: 2005-08-25

Re: awk problem ze znakiem %

dziękuje spróbuje


apt-get remove windows ....
apt-get install debian :)

Offline

 

#7  2008-02-19 16:48:24

  HunteR - DUG

HunteR
DUG
Skąd: ?
Zarejestrowany: 2006-03-14

Re: awk problem ze znakiem %

Znalazłem jeszcze coś takiego na necie to konwersji może Ci się przyda

Kod:

perl -pe 's/^(\d+)/localtime $1/e' access.log > wyniczek

i aby w logach otrzymać datę w normalnym formacie do pliku dodaj squid.conf

Kod:

emulate_httpd_log on

...

Offline

 

#8  2008-02-19 20:14:22

  zyga - Użytkownik

zyga
Użytkownik
Zarejestrowany: 2005-08-25

Re: awk problem ze znakiem %

dziekuje bardzo ;)


apt-get remove windows ....
apt-get install debian :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)