Skocz do zawartości

>>


olllga.d

Rekomendowane odpowiedzi

Chyba nie ma na to prostego sposobu, ale:

- dlaczego chcesz to zrobić? może wcale nie trzeba

- można pokombinować i zrobić jakieś obejście w bash

- można pokombinować i odwrócić kolejność linii w całym pliku:

mój sposób:

#!/bin/bash

# reverse-file - odwraca kolejność linii w pliku
# użycie:
#         reverse-file dane.log > rezultat.log

INPUT="$1"

for (( i =1; i <= $(wc -l < "$INPUT"); i++ )); do
     tail -n $i "$INPUT" | head -n 1 
done

 

inne metody w google -->

 

[EDIT]

usunąłem "$OUTPUT" w skrypcie, tak jest optymalniej

Odnośnik do komentarza
Udostępnij na innych stronach

Dziękuję za odpowiedzi!

 

Każdego dnia tworzony jest raport w pliku txt. Kolejne dni są dopisywane na końcu pliku, odszukanie początku najświeższego raportu jest kłopotliwe i wymaga rolowania całej treści, nawet z kilku miesięcy. Najprościej byłoby zapisywać każdy raport w osobnych plikach, ale jeśli nie mogę przez kilka dni odczytywać raportu (np. urlop) to nie chce musieć otwierać każdego dnia po kolei, osobno.

 

kombinuję z fopen

Odnośnik do komentarza
Udostępnij na innych stronach

tail wypisuje określoną liczbę linii, a raport każdego dnia ma inną wielkość i nie mogę wiedzieć od której linii zaczyna się dzisiejszy, a od której wczorajszy

sedem, grepem czy awk oczywiście można by to uzyskać, ale za każdym razem musiałabym pisać co najmniej prosty skrypt by przejrzeć jeden dzień, a w sumie to przecież chodzi mi tylko o to, by zaoszczędzić czas i ułatwić sobie pracę

Odnośnik do komentarza
Udostępnij na innych stronach

musiałabym pisać co najmniej prosty skrypt by przejrzeć jeden dzień

Wystarczy ci jeden skrypt np. z datą, jako argumentem, który będzie wyświetlał linie od napotkania znacznika danego dnia, do napotkania znacznika kolejnego dnia.

Sama napisałaś że

sedem, grepem czy awk oczywiście można by to uzyskać

więc nie widzę problemu.

Odnośnik do komentarza
Udostępnij na innych stronach

Najbardziej naturalne wydaje się po prostu przepisywanie zawartości pliku z archiwalnymi raportami do jakiejś zmiennej (lub innego pliku) i potem nadpisanie nowym raportem pliku raport > plik.txt i na końcu dopisanie zawartości zmiennej (lub utworzonej kopii pliku) $zmienna >> plik.txt.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...