如何在bash中使用/分隔符拆分字符串

11

我需要在bash脚本中通过 "/" 分割一个字符串,但我尝试了:

for i in $(echo $www | tr "/")

但是它没有起作用,有什么建议吗?

非常感谢。

2个回答

12
$ IFS=/ read -a foo <<< 'abc def/ghi/jkl'
$ echo "${foo[0]}*${foo[1]}*${foo[2]}"
abc def*ghi*jkl

设置IFS是最好的方法。当然,我怀疑$www不会有空格,而是%20。不要忘记在结尾处使用unset IFS!也可以使用IFS=/ for i in $www; do ... ; done ; unset IFS - Benoit
1
你不需要在结尾处取消 $IFS,因为这种表示法只会在命令执行期间设置它。 - Ignacio Vazquez-Abrams

4
你的技巧是可行的,只要你告诉tr应将斜杠翻译成什么。
for w in $(echo "what/the/heck" | tr "/" " ") ; do echo $w; done 
what
the
heck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接