awkрешение:
awk -F, '$3!~/^[[:space:]]*$/' file
Выход:
x, xx, xxx, xxxx,,,,
-F,
-разделитель полей
$3!~/^[[:space:]]*$/
-учитываются только те строки, в которых не -пусто 3-е поле (не состоит из пробелов)
Вероятно, временная часть линии наиболее стабильна, если вас интересуют другие часовые пояса. Вероятно, тогда также будет небезопасно искать имена месяцев и дней.
РЕДАКТИРОВАТЬ :сделал шаблон немного более точным, чтобы не совпадать с частями IP-адресов и тому подобное (шаблон может не совпадать до и после цифры или двоеточия ).
Итак, если вы попытаетесь найти время, вы можете сделать:
grep "\([^[^0-9:]\|^\)[0-9]\{1,2\}\(:[0-9]\{2\}\)\{2\}\([^[^0-9:]\|$\)"
С некоторыми тестовыми данными, как указано выше:
grep " ([^[^0 -9 :]\|^ )[0 -9]{1,2} (:[0 -9]{ 2} ){2} ([^[^0 -9 :]\|$ )" << КОНЕЦ Вс 14 июля 12 :47 :49 UTC 2019 какое-то сообщение адрес был 01 :11 :91 :05 Вс 14 июля 12 :47 :49 UTC 2019 01 :11 :91 :05 был адрес это не правильное время 123 :23 :03 это тоже не 1 :3 :43 и ни его 12 :33 :27 :Вс 14 июля 12 :47 :49 UTC 2019 КОНЕЦ
выводит:
Sun Jul 14 12:47:49 UTC 2019
Sun Jul 14 12:47:49 UTC 2019
Sun Jul 14 12:47:49 UTC 2019
Требуются три числовые части, разделенные символом :
, первая может состоять из 1 -2 цифр, а две другие должны состоять из 2 цифр.