unix-shell – 用分隔符连接字符串的便携式unix方法
发布时间:2020-12-15 18:30:33 所属栏目:安全 来源:网络整理
导读:是否有一种可移植的unix shellcriptpting方法,可以将多个字符串与给定的分隔符连接在一起,如下所示: $strjoin --- foo bar baz quuxfoo---bar---baz---quux 当然我可以在一个shellcript函数中使用$scripting_language单行或一个丑陋的显式循环,但旧的unix黑
是否有一种可移植的unix
shellcriptpting方法,可以将多个字符串与给定的分隔符连接在一起,如下所示:
$strjoin --- foo bar baz quux foo---bar---baz---quux 当然我可以在一个shellcript函数中使用$scripting_language单行或一个丑陋的显式循环,但旧的unix黑客可能也需要这个,所以有人制作了一个我不知道的标准命令在过去的某个地方,对吗? 编辑 在许多情况下,sed方法肯定是最简单的方法,但如果字符串可以包含空格则它不起作用.许多其他答案也没有处理.除了处理空格的$IFS技巧(以及一般所有可能的字符)之外是否有任何其他解决方案并且不需要编写完整的循环?
对于多字符长分隔符,您可以使用:
> sed(已经指出@Mark) $echo foo bar baz quux | sed "s/ /---/g" >前 $echo foo bar baz quux | ex +"s/ /---/gp" -cq! /dev/stdin $ex +"s/ /---/gp" -scq! <(echo foo bar baz quux) > printf(但会显示额外的结束分隔符) $printf "%s---" foo bar baz quux >使用以下shell函数(根据此SO post): join_by { local IFS="$1"; shift; echo "$*"; } 用法: $join_by '---' foo bar baz quux 对于单字符长分隔符,您可以使用: > tr echo foo bar baz quux | tr ' ' '-' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |