Você pode usar sed . Assim:
sed -e 's/Result:\(.*\)\..*$//g' file_name
se você quiser salvar o resultado no mesmo arquivo, poderá adicionar -i a sed arguments
Eu tenho um arquivo (file_name) que contém exatamente uma ocorrência da string "Result:" no início de uma linha. Quero imprimir todos os caracteres após a string "Resultado:" nessa linha até encontrar um '.' personagem. Qual comando de shell devo usar?
Você pode usar sed . Assim:
sed -e 's/Result:\(.*\)\..*$//g' file_name
se você quiser salvar o resultado no mesmo arquivo, poderá adicionar -i a sed arguments
Uma versão moderna do GNU grep que faz regexes perl fará:
grep -P -o '^Result: \K[^.]*'
-o diz ao grep para imprimir apenas a parte da linha correspondente. -P com \K na regex é uma asserção de look-behind com largura zero que faz com que o material antes do \K não faça parte da correspondência (largura zero).
Veja também: O grep pode exibir apenas os agrupamentos especificados que correspondem
<file_name sed -n 's/^Result: \([^.]*\)\..*//p'
<file_name awk '/^Result:.*\./ {sub(/^Result: /,""); sub(/\..*/, ""); print}'
<file_name grep '^Result: .*\.' | sed 's/^Result: //' | sed 's/\..*//'
Se a presença de . não for necessária, mude para
<file_name sed -n -e 's/\..*//' -e 's/^Result: //p'
<file_name awk '/^Result: / {sub(/^Result: /,""); print}'
<file_name grep '^Result: ' | sed 's/^Result: //'
Veja esta resposta para o fundo das soluções sed.
Tags shell shell-script