У меня есть файл, который содержит два значения для ключевого слова abc...
. Я хочу получить самую последнюю дату для совпадения abc...
строки. После получения даты мне также нужно отформатировать дату, заменив /
на -
---other data
2018/01/15 01:56:14.944+0000 INFO newagent.bridge BridgeTLSAssetector::setupACBContext() - abc...
2018/02/14 01:56:14.944+0000 INFO newagent.bridge BridgeTLSAssetector::setupACBContext() - abc...
---other data
В приведенном выше примере мой вывод должен быть 2018-02-14
. Здесь я выбираю строку, содержащую значение abc...
, и получаю только строку с последним значением даты. Затем мне нужно удалить оставшуюся строку и извлечь только значение даты.
Я использую следующее sed
, но оно не работает
grep -iF "abc..." file.txt | tail -n 1 | sed -e 's/^[^|]*|[^|]*| *\([^ ]*\) .*/\1/' -e 's%/%-%g'