Удалить кавычки из стандартного вывода. Передать строку как путь к файлу

ответ camh позаботится о большей части этого, но мы можем улучшить работу с округлением, часовыми поясами и т. д., плюс мы получим дополнительную точность и возможность выбирать наши единицы измерения:

datediff() {
#convert dates to decimal seconds since 1970-01-01 00:00:00 UTC
date1seconds=$(date +%s.%N -d "$date1")
date2seconds=$(date +%s.%N -d "$date2")

#Calculate time difference in various time units
timeseconds=$(printf "%0.8f\n" $(bc <<<"scale=9; ($date2sec-$date1sec)"))
timeminutes=$(printf "%0.8f\n" $(bc <<<"scale=9; ($date2sec-$date1sec)/60"))
  timehours=$(printf "%0.8f\n" $(bc <<<"scale=9; ($date2sec-$date1sec)/3600"))
   timedays=$(printf "%0.8f\n" $(bc <<<"scale=9; ($date2sec-$date1sec)/86400"))
  timeweeks=$(printf "%0.8f\n" $(bc <<<"scale=9; ($date2sec-$date1sec)/604800"))
}

-dсообщает date, что мы предоставляем дату -время для преобразования. +%s.%Nизменяет дату -время на секунды.наносекунды с 1970 -01 -01 00 :00 :00 UTC. bcвычисляет разницу между двумя числами, и коэффициент деления дает нам разные единицы измерения. printfдобавляет 0 перед запятой, если это необходимо(bcне делает )и обеспечивает округление до ближайшего(bcпросто усекает ). Вы также можете использовать awk.

А теперь давайте проверим это на необычном тестовом примере,

date1='Tue Jul  9 10:18:04.031 PST 2020'
date2='Wed May  8 15:19:34.447 CDT 2019'
datediff "$date1" "$date2"

echo $timeseconds seconds
-36971909.584000000 seconds

echo $timeminutes minutes
-616198.493066667 minutes

echo $timehours hours
-10269.974884444 hours

echo $timedays days
-427.915620185 days

echo $timeweeks weeks
-61.130802884 weeks

Обратите внимание, что, поскольку продолжительность месяца или года не всегда одинакова, здесь нет ни одного «правильного» ответа, хотя в настоящее время можно использовать 365,24 дня в качестве разумного приближения.

1
09.05.2021, 15:00
1 ответ

Проблема заключалась в том, что ~тильда не расширялась в оболочке, указание полного пути сработало.

0
28.07.2021, 11:33

Теги

Похожие вопросы