Я хочу использовать egrep в файле журнала, где будет выводиться только сопоставлено .
У меня есть файл журнала:
queued as 6B6A72A7896 sent 00100000000000000 0 2019 Apr 7 00:37:39
с использованием регулярного выражения PCRE, я сопоставил важную информацию.
(?P<"id>"(queued as [A-Z-0-9]{11}))+.+?(?<"div>"([0-9]{4}\s[A-Za-z]{3}.+?[\d]{2}:[\d]{2}:[\d]{2}))
см. Здесь: https: // regex101.com / r / L1l396 / 1
Как я могу вывести только идентификатор группы и DIV группы?
Решение с использованием sed
Изменения:
+. +?
-> . *
. +?
-> . *
Вывод вашего примера ввода:
$ sed -n 's/.*\(queued as [A-Z0-9-]\{11\}\).*\([0-9]\{4\}\s[A-Za-z]\{3\}.*[0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}\).*/id:\1 div:\2/p' file
id:queued as 6B6A72A7896 div:2019 Apr 7 00:37:37
id:queued as 25E642A7896 div:2019 Apr 7 02:12:02
id:queued as B4CCE2A7896 div:2019 Apr 7 02:26:49
id:queued as 247A22A7896 div:2019 Apr 7 02:28:25
Может быть, это сработает для вас?