Licznik w Bash

  • Rejestracja: dni
  • Ostatnio: dni
0

Potrzebuję skrypt który będzie zliczał utworzone pliki i dodawał daną liczbę do nazwy pliku. Co dzień będzie licznik się zerował

K3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 43
0

i jakie jest Twoje pytanie?

UB
  • Rejestracja: dni
  • Ostatnio: dni
0

Podpowiem:

Kopiuj
grep -c #do zliczania 
ls  #do wypisania katalogu
touch "plik" #stworzenie pliku o danej nazwie
"`polecenie`" #output polecenia jako string (żeby np zapisać plik pod tą nazwą)
crontable #miejsce gdzie możesz dodać zaplanowane polecenia do wykonania
  • Rejestracja: dni
  • Ostatnio: dni
0

Mam ogólnie całą logikę w pl/sql i w pliku .sh tworzy mi się plik z danymi i z nazwą FILE_NAME = 'COS_+$(date+%Y%m%d)+'_'+Nr_pliku_z_tego_dnia+ '.csv'. Potrzebuje żeby codziennie od 0 nadawany był nowy nr?

UB
  • Rejestracja: dni
  • Ostatnio: dni
0

No to musisz odczytać np sedem czy grepem numer pliku, dodać 1 i zapisać. A w przypadku gdy nie ma pliku zaczynającego się od COS_+$(date+%Y%m%d) ma dać zero i tyle.

  • Rejestracja: dni
  • Ostatnio: dni
0

Czy muszę to ująć w jakieś pętli ?

UB
  • Rejestracja: dni
  • Ostatnio: dni
0

Co chcesz ujmować w pętli?

  • Rejestracja: dni
  • Ostatnio: dni
0

A używając if-a można to jakoś zrobić?

MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
0

chyba wiem o co ci chodzi, sam kiedyś robiłem coś takiego (wyniki testów z JMeter zapisywałem w katalogu złożonym z daty i numeru na dany dzień).
Niestety skrypt został w poprzedniej pracy, ale chyba tak to szło:

Kopiuj
todayNr=1
fileName="COS_`date +%Y%m%d`_`printf "%03d" $todayNr`.csv"
while [  -f "$fileName" ]; do
     todayNr=$(( todayNr + 1 ))
     fileName="COS_`date +%Y%m%d`_`printf "%03d" $todayNr`.csv"
done

echo "New file name is: " $fileName
touch "$fileName"
  • Rejestracja: dni
  • Ostatnio: dni
0

super dzięuje

A jak mogę zrobić żeby mi codziennie licznik się zerował?

EDIT: WYCOFUJE PYTANIE :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.