Трудно сказать, что вы ищете, без примера ввода и ожидаемого вывода, но это может работать в большинстве случаев:
sed -e 's/.*id=\([0-9]*\).*/\1/'
Это составляет:
- Ищите строки, включающие «id =», сразу после которых следуют некоторые числа (
[0-9]*
), с любым количеством чего-либо до или после
- Заменить эти строки только числами (где
\1
ссылается на часть в скобках в выражении совпадения)
Это делает то, что вы хотите? Если нет, то можете ли вы более четко указать свои требования к вводу / выводу?