Reduzir linhas em uma única linha (separando as linhas originais por vírgulas)

1

Estou armazenando os resultados em uma variável e os resultados são representados como colunas. E olhando para converter a linha com um coma entre como separador. Qualquer ajuda seria apreciada.

echo $var

'2017-08-09'
'2017-01-01'
'2017-01-01'
'2017-01-01'
'2017-01-01'
'2017-01-01'
'2017-01-01'
'2017-01-01'
'2017-01-01'
'2017-01-01'
'2017-01-01'
'2017-01-01'

Resultado:

echo $var

'2017-08-09','2017-01-01','2017-01-01','2017-01-01','2017-01-01','2017-01-01','2017-01-01','2017-01-01','2017-01-01','2017-01-01','2017-01-01','2017-01-01'
    
por Kiran 25.10.2017 / 17:39

2 respostas

2

Com o comando paste :

var="$(paste -d',' -s <<<"$var")"
  • -d',' - mesclando linhas de arquivo usando , como delimitador
por 25.10.2017 / 17:56
0

Com tr e uma ordem paralela de sed :

$ cat in.sh
#!/usr/local/bin/bash
input="$( echo "'2017-08-09'
'2017-01-01'
'2017-01-01'
'2017-01-01'
'2017-01-01'
'2017-01-01'
'2017-01-01'
'2017-01-01'
'2017-01-01'
'2017-01-01'
'2017-01-01'
'2017-01-01'" )"
echo "$input" | tr "\n" "," | sed 's/,$//'
$ ./in.sh
'2017-08-09','2017-01-01','2017-01-01','2017-01-01','2017-01-01','2017-01-01','2017-01-01','2017-01-01','2017-01-01','2017-01-01','2017-01-01','2017-01-01'
    
por 25.10.2017 / 17:58