-
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.