Converta valores de variáveis delimitados por vírgula em espaços delimitados por espaços

1

Eu tenho um arquivo de propriedades no qual uma chave particular possui valores delimitados por vírgulas.

$cat sample.prorerties

value=alex,raj,kaly,rema

No meu script de shell, eu implemento esse arquivo de propriedades e uso a chave value para obter seus valores.

...
. sample.properties
echo $value
...

aqui é o que eu recebo como saída

$ alex,raj,kaly,rema

No entanto, estou procurando um valor delimitado por espaço como este

alex raj kaly rema

Eu sei como fazer isso para um arquivo, mas não tenho certeza sobre algo que é atribuído a uma variável. Qualquer ajuda é muito apreciada.

    
por Alex Raj Kaliamoorthy 08.11.2016 / 11:03

2 respostas

4

Você pode usar a manipulação de string Bash :

value=alex,raj,kaly,rema
echo $value 
alex,raj,kaly,rema

Agora substitua todos os , por ' ' (espaço):

echo ${value//,/ }
alex raj kaly rema
bash --version
GNU bash, version 3.2.57(1)-release
    
por 08.11.2016 / 11:14
1

Você pode tentar o comando tr .

Aqui está o script:

#!/bin/bash
value=alex,raj,kaly,rema
echo $value | tr ',' ' '

Aqui está a saída:

bash bash.sh 
alex raj kaly rema
    
por 08.11.2016 / 11:32