Я вижу множество примеров и справочных страниц о том, как выполнять такие операции, как поиск и замена, используя sed, awk или gawk.
Но в моем случае у меня есть регулярное выражение, которое я хочу запустить для текстового файла, чтобы извлечь конкретное значение. Я не хочу заниматься поиском и заменой. Это называется из Баш. Давайте использовать пример:
Пример регулярного выражения:
.*abc([0-9]+)xyz.*
Пример входного файла:
a
b
c
abc12345xyz
a
b
c
Как бы просто это не звучало, я не могу понять, как правильно вызвать sed / awk / gawk. То, что я надеялся сделать, изнутри моего bash-скрипта:
myvalue=$( sed <...something...> input.txt )
Вещи, которые я пробовал, включают:
sed -e 's/.*([0-9]).*/\\1/g' example.txt # extracts the entire input file
sed -n 's/.*([0-9]).*/\\1/g' example.txt # extracts nothing