bash – 使用空格将字符串(存储在变量中)分割成多个单词,而不是
发布时间:2020-12-15 19:08:11 所属栏目:安全 来源:网络整理
导读:我正在为我写一个复杂的脚本,我的目标是做以下事情。我有一个字符串进来,看起来像这样: 2012 2013 "multiple words" 我的目标是将这些每一个都放在一个由空格分割的数组中,但只能用于单个字匹配,而不是双引号。应该考虑一个字。所以我的想法是这样做两
我正在为我写一个复杂的脚本,我的目标是做以下事情。我有一个字符串进来,看起来像这样:
2012 2013 "multiple words" 我的目标是将这些每一个都放在一个由空格分割的数组中,但只能用于单个字匹配,而不是双引号。应该考虑一个字。所以我的想法是这样做两步。首先匹配那些倍数的单词,从字符串中删除那些,然后在另一个由空格分割的迭代中。 array=$(echo $tags | sed -nE 's/"(.+)"/1/p') 但这将导致(在OS X上): 2012 2013 multiple words 预期结果: array[1]="2012" array[2]="2013" array[3]="multiple words" 我将如何解决这类问题? 谢谢。
eval是邪恶的,但这可能是其中很方便的情况之一
str='2012 2013 "multiple words"' eval x=($str) echo ${x[2]} multiple words 或者更新版本的bash(在4.3上测试) s='2012 2013 "multiple words"' declare -a 'a=('"$s"')' printf "%sn" "${a[@]}" 2012 2013 multiple words (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- twitter-bootstrap – 在哪里可以找到twitter bootstrap少文
- 将Angular验证类应用于非FormControl父级
- AXIS2框架下另一种发布WEBSERVICE的方法,以及浏览器中验证
- Bootstrap学习笔记 22 - Inputs
- 实现webservice客户端后在tomcat下运行正常,部署到weblogi
- twitter-bootstrap – 如何在bootstrap 3中清除带有’x’的
- unix – “find command -mtime 0”没有得到我期望的文件
- webservice的原理及概念
- angularjs – 指令要求中的问号
- 我可以在生产中使用boot2docker吗? CoreOS与boot2docker