CTRL+Pageup и CTRL -Pagedown внезапно перестал работать

Как Дэн упоминает в своем ответе , команду Gnu date(1)можно задан параметр -dс датой или отметкой времени, который он будет рассматривать как дата, которую необходимо вывести. (Это недоступно в POSIX или BSD. date(1)команды, однако.)@1571806800— это формат, используемый для укажите целое число time_t.

Вот функция оболочки Bash, которая действует как фильтр, читая строки из ввод, предполагая, что любое слово, начинающееся со строки, состоящей только из цифр, является отметку времени и преобразовать ее в удобочитаемый -вывод в одном из моих любимые форматы.

ts2hr() {
    while read n rest; do
        if [[ $n =~ ^[0-9][0-9]*$ ]]; then
            echo "$(date -d @"$n" +"%Y-%m-%d %T")" "$rest"
        else
            echo "$n" "$rest"
        fi
    done
}

Вот как выглядят некоторые входные и выходные данные:

ts2hr <<____
1571806123 first line
# A comment?
1571720456 second date's here
Just a regular sentence.
1571547789 The last line.
____
2019-10-23 13:48:43 first line
# A comment?
2019-10-22 14:00:56 second date's here
Just a regular sentence.
2019-10-20 14:03:09 The last line.

Вы можете настроить функцию по мере необходимости для обработки конкретного ввода. и форматы вывода, которые вам нужны, а также инструменты, которые у вас есть доступный. Вышеупомянутая функция является Bash главным образом потому, что оператор =~упростили сопоставление с образцом; если вам это нужно в оболочке Bourne, вы придется закодировать чек по-другому, если он вам вообще нужен.

1
01.09.2020, 11:53
1 ответ

Теги

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