非常抱歉问一个愚蠢的问题,但我对此事感到疯狂。
所以,我在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)
非常感谢
我将使用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