Найти список каталогов в виде строки, разделенной запятыми, без запятой - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь создать список каталогов в виде строки, разделенной запятыми

find . -type d -mindepth 1 | tr '\n' ','

Это дает мне строку с запятой.

dirA,dirB,dirc,

Я знаю, что могу использовать sed или awk, чтобы убрать запятую, но есть ли способ структурировать find или tr, чтобы добиться этого?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Вы можете использовать расширение параметра , чтобы избавиться от лишних ,:

list=$(find . -mindepth 1 -type d -printf '%p,'); echo "${list%,}" 

Это будет работать правильно даже для имен файлов с переводами строки.

0 голосов
/ 03 сентября 2018

Не с tr, но простым решением может быть использование paste:

find . -type d -mindepth 1 | paste -sd,
...