Я хотел бы извлечь значения хеша с помощью sed
из таких строк:
[129.173.213.225:52196] some_text: another_text --> eb1d94daa7e0344597e756a1fb6e7054
Желаемый результат просто имеет 32-байтовое значение хеша, eb1d94daa7e0344597e756a1fb6e7054в этом примере.
Итак, я попробовал следующую команду с regexp
(идея состоит в том, чтобы удалить все, кроме сопоставленного шаблона):
% sed 's/\([0-9a-f]{32}\)$/\1/g' < file
, что приводит к ошибке:
sed: -e expression #1, char 20: invalid reference \1 on `s' command's RHS
Передача -r
в sed не помогла, я получаю ту же ошибку.
Я думаю, что само регулярное выражение правильно, потому что sed -r 's/[0-9a-f]{32}$/XXX/g'
заменяет 32-байтовое значение хеш-функции наXXX строкаНо я хочу удалить все строки, кроме значения хеш-функции.
% cat /etc/issue
Ubuntu 16.04.6 LTS \n \l
%
% ls -la `which sed`
-rwxr-xr-x 1 root root 73424 Feb 11 2016 /bin/sed
%
Что я делаю не так?