使用bash将字符串转换为数组,遵循引号进行分组[复制]
发布时间:2020-12-15 19:00:54 所属栏目:安全 来源:网络整理
导读:参见英文答案 Bash doesn’t parse quotes when converting a string to arguments4个 我有一个字符串: Str='This string has "a substring"' 该字符串有逗号,所以如果我打印字符串,我看到: echo "${Str}"This string has "a substring". 如果我输入命令:
参见英文答案 >
Bash doesn’t parse quotes when converting a string to arguments4个
我有一个字符串: Str='This string has "a substring"' 该字符串有逗号,所以如果我打印字符串,我看到: echo "${Str}" This string has "a substring". 如果我输入命令: $Tmp=( ${Str} ) $echo "${Tmp[3]}" "a $echo "${Tmp[4]}" Substring" 我喜欢打印:子串
此问题需要使用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 > (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |