行を単一の行に縮小します(元の行をカンマで区切ります)。

行を単一の行に縮小します(元の行をカンマで区切ります)。

結果を変数に保存し、結果が列に表示されます。カンマを区切り文字として行に変換したいです。どんな助けでも大変感謝します。

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'

結果:

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'

答え1

そしてpaste注文する:

var="$(paste -d',' -s <<<"$var")"
  • -d',',- 区切り文字としてファイル行をマージする

答え2

サブtrオーダー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'

関連情報