以逗号分隔的字符串查找目录列表,不带尾随逗号

问题描述 投票:1回答:2

我正在尝试生成一个目录列表,作为逗号分隔的字符串

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

这给了我一个带尾随逗号的字符串。

dirA,dirB,dirc,

我知道我可以用sed或awk来删除尾随的逗号,但是有没有办法构建findtr来完成这个?

bash find comma tr
2个回答
1
投票

不是tr,但一个简单的解决方案可能是使用paste

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

1
投票

你可以使用parameter expansion摆脱额外的,

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

即使对于带有换行符的文件名,这也能正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.