Oblicz różnicę między dwiema datami w BASH

Oblicz różnicę między dwiema datami w BASH

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)))
1echo $ ((($ (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)))
1Echo $ ((($ (data -d "2023-02-28" +%s)-$ (data -d "2023-01-01" +%s))/86400)))

Dane wyjściowe tego polecenia będzie:

58
158

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 | pne
1echo \ ($ (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: 58
123echo \ ($ (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'
1echo $ (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: 58
123echo $ (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.