Nowe posty

Autor Wątek: Przekierowanie z konsoli i formatowanie pliku wynikowego  (Przeczytany 2127 razy)

ukffun

  • Gość
Witam, mam program z którego wyjścia przekierowuje dane do pliku txt.
wygląda to w ten sposób program -parametr /dev/stdin >> plik.txt
do pliku dopisują mi się kolejne wartości tak jak tu:
ABCD: 7 tones  orig:[1010101] parsed:[1010001]  VALUES: dec: 257 hex: 0x101
Potrzebuje tak sformatować przekierowanie żeby zapisywała się tylko wartość dec w pliku z datą zapisania tzn.
10-06-2015 12:30:05 - 257
W jaki sposób to rozwiązać?

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2769
  • 1709
    • Zobacz profil
Przekierowanie z konsoli i formatowanie pliku wynikowego
« Odpowiedź #1 dnia: 2015-06-23, 13:22:51 »
Przykład
$ a=$(date "+%d-%m-%Y %H:%M:%S") ; b=$(cat t |  awk '{print "zamien", $8}') ; echo "$b" | sed -E "s/zamien/$a -/g"
23-06-2015 13:18:57 - 257
23-06-2015 13:18:57 - 258
23-06-2015 13:18:57 - 259
23-06-2015 13:18:57 - 265
a więc:
a=$(date "+%d-%m-%Y %H:%M:%S") ; b=$( /dev/stdin |  awk '{print "zamien", $8}') ; echo "$b" | sed -E "s/zamien/$a -/g" >> plik.txt
Może być?

Edit:
Albo przykład bez seda:
$ a=$(date "+%d-%m-%Y %H:%M:%S") ; cat t |  awk '{print "'"$a"'", "-", $8}'
23-06-2015 13:29:27 - 257
23-06-2015 13:29:27 - 258
23-06-2015 13:29:27 - 259
23-06-2015 13:29:27 - 265
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

Online Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3068
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Przekierowanie z konsoli i formatowanie pliku wynikowego
« Odpowiedź #2 dnia: 2015-06-23, 13:42:44 »
... -parametr /dev/stdin | awk '{print $8}' | ts "%d-%m-%Y %H:%M:%S -" >> plik.txt
Program ts jest zwykle w pakiecie moreutils.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

szogu

  • Gość
Przekierowanie z konsoli i formatowanie pliku wynikowego
« Odpowiedź #3 dnia: 2015-06-30, 16:40:31 »
Aaaaalbo jeszcze bardziej na skróty:

" | awk '{print "'"`date "+%d-%m-%Y %H:%M:%S"`"'", "-", $8}'"

:))

Online Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3068
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Przekierowanie z konsoli i formatowanie pliku wynikowego
« Odpowiedź #4 dnia: 2015-06-30, 23:49:02 »
Wszystkie rozwiązania z date są fajne, tylko wyliczenie daty jest robione raz, przy uruchomieniu skryptu i wszystkie wpisy będą miały tą samą datę i godzinę, nawet jeżeli skrypt będzie chodził pół roku. Właśnie po to powstała komenda ts.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

ukffun

  • Gość
Przekierowanie z konsoli i formatowanie pliku wynikowego
« Odpowiedź #5 dnia: 2015-07-03, 14:16:27 »
Cytat: pkraszewski
Wszystkie rozwiązania z date są fajne, tylko wyliczenie daty jest robione raz, przy uruchomieniu skryptu i wszystkie wpisy będą miały tą samą datę i godzinę, nawet jeżeli skrypt będzie chodził pół roku. Właśnie po to powstała komenda ts.
No własnie tego mi brakowało :) teraz już wiem czemu data w pliku jak sam kombinowałem nad tym się nie zmieniała. Dziekuje za pomoc.

ukffun

  • Gość
Przekierowanie z konsoli i formatowanie pliku wynikowego
« Odpowiedź #6 dnia: 2015-07-03, 21:04:02 »
Jeszcze jedno pytanie.. jak to wszystko dodać do crona?
Trzeba by było chyba stworzyć skrypt w którym będe uruchamiał
.. -parametr /dev/stdin | awk '{print $8}' | ts "%d-%m-%Y %H:%M:%S -" >> plik.txt
i dopiero w cronie odpalać ten skrypt? bo bezpośrednio z crona chyba nie odpale kilku zadań jednoczesnie..