Usando sed em vez de grep para produzir apenas uma parte correspondente da linha

0

Estou escrevendo um script bash simples (na verdade, aprendendo como fazer) e quero que essa função use apenas echo e sed e retorne exatamente a mesma saída. Eu encontrei soluções com sed, eles trabalharam no console mas não funcionaram dentro do script. (script é chamado com sudo, talvez seja importante)

Esta é minha função:

function strip
{
     echo "$1" | grep -oP '[a-zA-Z0-9\+\-\=\ ]+' | head -n 1;
}

É assim que é suposto funcionar

Entrada: "-Wall"
Saída: "-Wall"

Entrada: "-O3% ## -Wall"
Saída: "-O3"

Entrada: "% # $ # $"
Saída: ""

Alguém pode mostrar como seria usar sed?

    
por npower 11.01.2016 / 16:10

1 resposta

1

echo ___abc___ | sed 's/^.*\(abc\).*$//'
abc
    
por 11.01.2016 / 16:20