# If you'd like to omit non-matching lines from the result; add ';d' to the end of the expression.
sed -E 's/="?(?<currentValue>[^\"\n]*)"? # renovate:(?:[\s]+datasource=[\"\']*(?<datasource>[^\s\"\']*)[\'\"]*|[\s]+depName=[\'\"]*(?<depName>[^\s\'\"]*)[\'\"]*|[\s]+registryUrl=[\'\"]*(?<registryUrl>[^\s\'\"]*)[\'\"]*|[\s]+versioning=[\'\"]*(?<versioning>[^\s\'\"]*)[\'\"]*|[\s]+extractVersion=[\'\"]*(?<extractVersion>[^\s\'\"]*)[\'\"]*)*/$datasource $registryUrl $depName/gm;t' <<< "# different prefix (shell scripts)
VERSION=0.1.0 # renovate:
DEP_VERSION=0.1.0 # renovate:
# different prefix (makefile)
VERSION?=0.1.0 # renovate:
DEP_VERSION:=0.1.0 # renovate:
# order does not matter
VERSION?=v1.28.0 # renovate: datasource=github-releases registryUrl=https://docker.io depName=adrienverge/yamllint versioning=semver extractVersion=example-v1.1.0
VERSION?=v1.28.0 # renovate: registryUrl=https://docker.io datasource=github-releases depName=adrienverge/yamllint versioning=semver extractVersion=example-v1.1.0
VERSION?=v1.28.0 # renovate: registryUrl=https://docker.io depName=adrienverge/yamllint datasource=github-releases versioning=semver extractVersion=example-v1.1.0
VERSION?=v1.28.0 # renovate: registryUrl=https://docker.io depName=adrienverge/yamllint versioning=semver datasource=github-releases extractVersion=example-v1.1.0
VERSION?=v1.28.0 # renovate: registryUrl=https://docker.io depName=adrienverge/yamllint versioning=semver extractVersion=example-v1.1.0 datasource=github-releases
# values can be wrapped between \" and '
VERSION?=v1.28.0 # renovate: datasource=\"github-releases\" registryUrl=\"https://docker.io\" depName=\"adrienverge/yamllint\" versioning=\"semver\" extractVersion=\"example-v1.1.0\"
VERSION?=v1.28.0 # renovate: datasource='github-releases' registryUrl='https://docker.io' depName='adrienverge/yamllint' versioning='semver' extractVersion='example-v1.1.0'
VERSION?=v1.28.0 # renovate: datasource=\"'\"\"'''\"github-releases\"'\"\"'''\" registryUrl=\"'\"\"'''\"https://docker.io\"'\"\"'''\" depName=\"'\"\"'''\"adrienverge/yamllint\"'\"\"'''\" versioning=\"'\"\"'''\"semver\"'\"\"'''\" extractVersion=\"'\"\"'''\"example-v1.1.0\"'\"\"'''\"
# ignore multiple spaces
VERSION?=v1.28.0 # renovate: datasource=github-releases registryUrl=https://docker.io depName=adrienverge/yamllint versioning=semver extractVersion=example-v1.1.0
VERSION?=v1.28.0 # renovate: registryUrl=https://docker.io datasource=github-releases depName=adrienverge/yamllint versioning=semver extractVersion=example-v1.1.0
VERSION?=v1.28.0 # renovate: registryUrl=https://docker.io depName=adrienverge/yamllint datasource=github-releases versioning=semver extractVersion=example-v1.1.0
VERSION?=v1.28.0 # renovate: registryUrl=https://docker.io depName=adrienverge/yamllint versioning=semver datasource=github-releases extractVersion=example-v1.1.0
VERSION?=v1.28.0 # renovate: registryUrl=https://docker.io depName=adrienverge/yamllint versioning=semver datasource=github-releases extractVersion=example-v1.1.0
"
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for SED, please visit: https://www.gnu.org/software/sed/manual/html_node/The-_0022s_0022-Command.html