Como substituo apenas a última ocorrência de "-" em uma string por um espaço usando sed
?
Por exemplo:
echo $MASTER_DISK_RELEASE
swp-RedHat-Linux-OS-5.5.0.0-03
mas quero obter a seguinte saída (substituindo o último hífen [“-“] por um espaço)
swp-RedHat-Linux-OS-5.5.0.0 03
text-processing
sed
maihabunash
fonte
fonte
sed
não suportam correspondências de padrões. Nesse caso, você precisará de outra coisa, sejaperl -pne 's/(.*)-/$1 /'
a solução de expansão de parâmetros do @ Thor ou outra coisa.sed -r
.sed -r 's/(.*)-(.*)-/\1 \2 /')
.Você também pode lidar com isso com a expansão do parâmetro bash :
Saída:
fonte
Algo assim funcionou para mim, embora eu tenha certeza de que existem maneiras melhores
fonte
bash
recurso de expansão de parâmetros, que funciona bem se o OP também estiver sendo usadobash
. Haverá um delicado equilíbrio entre a legibilidade (a ponto de ser muito detalhada) e o uso das ferramentas certas, mas, na maioria das vezes, prevalecerá o uso das ferramentas certas.