如何让 sed 只打印匹配的表达式?
我想将诸如“电池 0:充电,44%,充电”之类的字符串重写为“电池:44%”。我尝试了以下方法:
sed -n '/\([0-9]*%\)/c Battery: \1'
这不起作用。
常见的“解决方案”是使用搜索和替换并匹配整行: sed -n 's/.*\([0-9]*%\).*/Battery: \1/p' 现在 .* 太贪婪了,\1 只是 %。
sed -n 's/.*\([0-9]*%\).*/Battery: \1/p'
此外,我不想匹配比我需要的更多。
regex sed
regex ×1
sed ×1