Oblicz różnicę między dwiema datami w BASH
- 1910
- 570
- Ignacy Modzelewski
W Bash możesz łatwo obliczyć różnicę między dwiema datami. Może to być przydatne w różnych scenariuszach, takich jak obliczenie liczby dni między dwoma zdarzeniami lub określanie wieku osoby. W tym artykule omówimy różne metody obliczenia różnicy między dwiema datami w BASH.
Oblicz różnicę między dwiema datami
Do obliczenia różnicy między dwiema datami można użyć polecenia „daty” w Bash. Składnia do używania polecenia „Data” jest następująca:
echo $ ((($ (data -d "yyyy-mm-dd" +%s)-$ (data -d "yyyy-mm-dd" +%s))/86400)))1 | echo $ ((($ (data -d "yyyy-mm-dd" +%s)-$ (data -d "yyyy-mm-dd" +%s))/86400))) |
W powyższym poleceniu wymień „Jyyy-MM-DD” z dwiema datami, które chcesz porównać w tym samym formacie. Polecenie wyświetli liczbę dni między dwiema datami.
Spójrzmy na przykład. Jeśli chcesz obliczyć liczbę dni między 1 stycznia 2023 I 28 lutego 2023, Możesz użyć następującego polecenia:
Echo $ ((($ (data -d "2023-02-28" +%s)-$ (data -d "2023-01-01" +%s))/86400)))1 | Echo $ ((($ (data -d "2023-02-28" +%s)-$ (data -d "2023-01-01" +%s))/86400))) |
Dane wyjściowe tego polecenia będzie:
581 | 58 |
Oznacza to, że są 58 dni od 1 stycznia 2023 r. A 28 lutego 2023.
Metoda 2: Korzystanie z polecenia „BC”
Komenda „BC” w Bash może być użyta do wykonywania obliczeń matematycznych. Aby obliczyć różnicę między dwiema datami za pomocą polecenia „BC”, użyj następującej składni:
echo \ ($ (data -d "yyyy-mm-dd" +%s)-$ (data -d "yyyy-mm-dd" +%s) \) / 86400 | pne1 | echo \ ($ (data -d "yyyy-mm-dd" +%s)-$ (data -d "yyyy-mm-dd" +%s) \) / 86400 | pne |
W powyższym poleceniu wymień „Jyyy-MM-DD” z dwiema datami, które chcesz porównać w tym samym formacie. Polecenie wyświetli liczbę dni między dwiema datami.
Na przykład:
echo \ ($ (data -d "2023-02-28" +%s)-$ (data -d "2023-01-01" +%s) \) / 86400 | BC #output: 58123 | echo \ ($ (data -d "2023-02-28" +%s)-$ (data -d "2023-01-01" +%s) \) / 86400 | BC #output: 58 |
Metoda 3: Korzystanie z polecenia „AWK”
Komenda „AWK” w Bash można również użyć do obliczenia różnicy między dwiema datami. Użyj następującej składni:
echo $ (data -d "yyyy-mm-dd" +%s) $ (data -d "yyyy-mm-dd" +%s) | awk 'print (1 $ - 2 $) / 86400'1 | echo $ (data -d "yyyy-mm-dd" +%s) $ (data -d "yyyy-mm-dd" +%s) | awk 'print (1 $ - 2 $) / 86400' |
W powyższym poleceniu wymień „Jyyy-MM-DD” z dwiema datami, które chcesz porównać w tym samym formacie. Polecenie wyświetli liczbę dni między dwiema datami.
Na przykład:
echo $ (data -d "2023-02-28" +%s) $ (data -d "2023-01-01" +%s) | awk 'print (1 $ - 2 $) / 86400 #output: 58123 | echo $ (data -d "2023-02-28" +%s) $ (data -d "2023-01-01" +%s) | awk 'print (1 $ - 2 $) / 86400 #output: 58 |
Wniosek
Obliczanie różnicy między dwiema datami w Bash można wykonać za pomocą różnych poleceń, takich jak „data”, „bc” i „awk”. Korzystając z tych poleceń, możesz łatwo obliczyć liczbę dni między dwiema datami. Wiedza, jak obliczyć różnicę między dwiema datami, może być przydatne w różnych scenariuszach, takich jak obliczenie wieku osoby lub liczba dni między dwoma zdarzeniami.