-
Torne o regexp um pouco mais específico.
sed -n 's/.* \([0-9]*%\),.*/Battery: /p'
-
Escolha uma ferramenta diferente.
perl -ne '/(\d+%)/ && print "Battery: $1\n";'
(apenas para o registro,
foo && bar
é a abreviação deif (foo) { bar }
.)
Como fazer o sed apenas imprimir a expressão correspondente?
Eu quero reescrever strings como "Bateria 0: Carregando, 44%, carregando" para "Bateria: 44%". Eu tentei o seguinte:
sed -n '/\([0-9]*%\)/c Battery: '
Isso não funciona.
A "solução" comum é usar a pesquisa e substituir e corresponder a linha inteira: %código% Agora os. * São muito gananciosos e o \ 1 é apenas o%.
Além disso, não quero corresponder mais do que preciso.
Talvez você possa grep -o
(o -o é importante) para os valores necessários e usá-los em seu script (?) Dessa forma, você poderia usar o valor de maneiras mais criativas ou talvez envolto em echo
' s etc.