我有一个字符串:
Str='This string has "a substring"'
该字符串有逗号,所以如果我打印我看到的字符串:
echo "${Str}"
This string has "a substring".
如果我输入命令:
$ Tmp=( ${Str} )
$ echo "${Tmp[3]}"
"a
$ echo "${Tmp[4]}"
Substring"
我想打印:a Substring
有什么建议吗?
我可以更改逗号,但必须将其从 Str 打印为 Tmp
这个问题需要使用xargs(它将带引号的字符串保留在一起):
$ Str='This string has "a substring"'
$ IFS=$'\n' arr=( $(xargs -n1 <<<"$Str") )
$ printf '<%s>\n' "${arr[@]}"
<This>
<string>
<has>
<a substring>
所以,您需要的元素:
$ echo "${Tmp[3]}"
a substring
请注意,“未加引号”的项目的前导或尾随空格将被删除:
$ Str=' This string has " a substring "'
$ IFS=$'\n' arr=( $(xargs -n1 <<<"$Str") )
$ printf '<%s>\n' "${arr[@]}"
<This>
<string>
<has>
< a substring >
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)