Заменяет последнюю запятую на новую строку:
ls -1 | tr '\n' ',' | sed 's/,$/\n/'
ls -m
включает переводы строки с шириной экрана (например, 80-е).
Преимущественно Bash (только ls
является внешним):
saveIFS=$IFS; IFS=$'\n'
files=($(ls -1))
IFS=,
list=${files[*]}
IFS=$saveIFS
Использование readarray
(он же mapfile
) в Bash 4:
readarray -t files < <(ls -1)
saveIFS=$IFS
IFS=,
list=${files[*]}
IFS=$saveIFS
Спасибо gniourf_gniourf за предложения.