Я вижу множество примеров и справочных страниц о том, как делать такие вещи, как поиск и замена, используя sed, awk или gawk.Как использовать sed, awk или gawk для печати только того, что соответствует?
Но в моем случае у меня есть регулярное выражение, которое я хочу запустить против текстового файла, чтобы извлечь определенное значение. Я не хочу выполнять поиск и замену. Это называется из bash. Давайте используем пример:
Пример регулярное выражение:
.*abc([0-9]+)xyz.*
Пример входного файла:
a
b
c
abc12345xyz
a
b
c
Как просто, как это звучит, я не могу понять, как позвонить СЕПГ/AWK/простак правильно , То, что я надеялся сделать, это из моей Баш скрипт есть:
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
Wow ... люди проголосовали этот вопрос до -1? Неужели это неуместно? –
Кажется вполне уместным, используя Regex и мощные утилиты командной строки, такие как sed/awk или любой редактор, например vi, emacs или teco, могут больше походить на программирование, чем просто использовать какое-то приложение ol. ИМО это принадлежит на SO больше, чем SU. – Dereleased
Возможно, он был отклонен, потому что в его первоначальной форме он четко не определил некоторые из его требований. Это все еще не так, если вы не читаете комментарии OP к ответам (включая тот, который я удалил, когда дела шли грушевидно). – pavium