通配/路径扩展结肠癌作为分隔符 [英] Globbing/pathname expansion with colon as separator
本文介绍了通配/路径扩展结肠癌作为分隔符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我怎么可以转换包含水珠字符的字符串,如
的/ var / lib中/宝石/ * /箱
成文件名的冒号分隔字符串(即PATH兼容)匹配模式?
即。 回声的/ var / lib中/宝石/ * /斌
将返回
/var/lib/gems/1.8/bin /var/lib/gems/1.9.1/bin
我想
/var/lib/gems/1.8/bin:/var/lib/gems/1.9.1/bin
代替。
最明显的方法是简单地替换为空格字符:通过 TR
,但如果文件名本身包含空格字符不起作用。 p>
解决方案
其实,我想到了一个更好的解决方案:使用shell函数
功能连接(){
当地IFS = $ 1
转移
回声$ *
}myString的= $(加入':'在/ var / lib中/宝石/ * / bin中)
How can I convert a string containing glob characters such as
/var/lib/gems/*/bin
into a colon-separated string of filenames (i.e. PATH compatible) matching the pattern?
i.e. echo /var/lib/gems/*/bin
will return
/var/lib/gems/1.8/bin /var/lib/gems/1.9.1/bin
I want
/var/lib/gems/1.8/bin:/var/lib/gems/1.9.1/bin
instead.
The obvious approach is simply to replace the space character with ':' via tr
, but that doesn't work if the filename itself contains the space character.
解决方案
Actually, I thought of a better solution: use a shell function.
function join() {
local IFS=$1
shift
echo "$*"
}
mystring=$(join ':' /var/lib/gems/*/bin)
这篇关于通配/路径扩展结肠癌作为分隔符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文