在bash中组合Grep和Paste命令

luc*_*one 0 bash grep paste

非常抱歉问一个愚蠢的问题,但我对此事感到疯狂。

所以,我在bash中,并且有一些文件:

ls
a.bed
b.bed
c.bed
Run Code Online (Sandbox Code Playgroud)

我要做的就是创建一个变量,将所有3个变量用逗号隔开,这是我要搜索的输出:

a.bed, b.bed, c.bed
Run Code Online (Sandbox Code Playgroud)

我现在使用的是什么(但是有空格而不是逗号):

beds=$(ls|grep .bed)
Run Code Online (Sandbox Code Playgroud)

其中有

a.bed b.bed c.bed
Run Code Online (Sandbox Code Playgroud)

非常感谢

che*_*ner 7

我将使用printf及其-v选项,然后使用参数扩展。

$ printf -v beds '%s, ' *.bed
$ beds=${beds%, }
Run Code Online (Sandbox Code Playgroud)

第一行产生a.bed, b.bed, c.bed, 。第二行修剪尾随,

如果只需要一个单字符分隔符,则可以使用带有以下内容的数组IFS

$ beds=$(a=(*.bed); IFS=,; echo "${a[*]}")
Run Code Online (Sandbox Code Playgroud)


小智 6

您可以单独使用ls的x和m选项:

beds=$(ls -xm *.bed)
Run Code Online (Sandbox Code Playgroud)

echo $ beds
a.bed,b.bed,c.bed