Местное время в формате UTC

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

Подумайте, если бы я дал вам такие инструкции:

Place your hands on your desk.
Tense your arm muscles.
Extend your knee and hip joints.
Relax your arms.
Move your arms backwards.
Move your left leg backwards.
Move your right leg backwards.
(continue for 10,000 more lines)

К тому времени, когда вы прошли половину или даже 5%, вы бы забыли, какими были первые несколько шагов. Вы не могли обнаружить большинство проблем, потому что за деревьями не было видно леса. Сравните с функциями:

stand_up();
walk_to(break_room);
pour(coffee);
walk_to(office);

Это, безусловно, более понятно, сколько бы комментариев вы ни добавили в построчную последовательную версию. Это также делает намного более вероятным, что вы заметите, что вы забыли приготовить кофе и, вероятно, забыли sit_down () в конце. Когда вы думаете о деталях регулярных выражений grep и awk, вы не можете представить себе общую картину - «что, если кофе не приготовлен»?

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

Конечно, есть и другие преимущества, обсуждаемые в других ответах. Еще одно преимущество, которое четко не указано в других ответах, заключается в том, что функции обеспечивают гарантию, важную для предотвращения и исправления ошибок. Если вы обнаружите, что какая-то переменная $ foo в соответствующей функции walk_to () была неправильной, вы знаете, что вам нужно только посмотреть на остальные 6 строк этой функции, чтобы найти все, на что могла повлиять эта проблема, и все, что могло сделали это неправильно. Без (правильных) функций все и вся во всей системе может быть причиной того, что $ foo неверен, и $ foo может повлиять на все и вся. Следовательно, вы не можете безопасно исправить $ foo без повторного изучения каждой строчки программы. Если $ foo является локальным для функции, вы можете гарантировать безопасность и правильность любых изменений, проверяя только эту функцию.

2
23.01.2017, 04:56
2 ответа

Основная команда - date. Для первого свидания вы можете набрать

date -u --date=2016-03-01T13:15:00PST

Конечно, вы хотите прочитать текстовый файл, поэтому вы можете сделать что-то вроде

awk '{print "date -u --date="$1"-"$2"-"$3"T"$4":"$5":"$6"PST"}' file.txt | sh

Существует множество других способов обработки текстового файла. На странице man для date есть информация о том, как форматировать вывод.

2
27.01.2020, 21:56

С GNU awk (обычно в Linux, а иногда в других системах) и эти данные вы можете использовать

[g]awk '{print strftime(fmt,mktime($0" 0"),1)}' file

Если вы хотите, чтобы выходной формат был таким же, как входной, используйте «% Y% m% d% H% M% S» для fmt. Если введено местное гражданское время, включая дневное / летнее время в течение соответствующей части года, опустите суффикс «0» . Если «PST» - это тихоокеанская зона США, то она обычно соответствует правилам США в отношении летнего времени, но если это филиппинское время, оно обычно не смещается, находясь вблизи экватора.

3
27.01.2020, 21:56

Теги

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