相关疑难解决方法(0)

将Bash数组转换为分隔的字符串

我想知道以下内容;

  1. 为什么给定的非工作示例不起作用.
  2. 如果有任何其他清洁方法,而不是工作示例中给出的方法.

非工作的例子

> ids=(1 2 3 4);echo ${ids[*]// /|}
1 2 3 4
> ids=(1 2 3 4);echo ${${ids[*]}// /|}
-bash: ${${ids[*]}// /|}: bad substitution
> ids=(1 2 3 4);echo ${"${ids[*]}"// /|}
-bash: ${"${ids[*]}"// /|}: bad substitution
Run Code Online (Sandbox Code Playgroud)

工作实例

> ids=(1 2 3 4);id="${ids[@]}";echo ${id// /|}
1|2|3|4
> ids=(1 2 3 4); lst=$( IFS='|'; echo "${ids[*]}" ); echo $lst
1|2|3|4
Run Code Online (Sandbox Code Playgroud)

在上下文中,用于sed命令的分隔字符串用于进一步解析.

arrays string bash delimited-text

32
推荐指数
4
解决办法
4万
查看次数

标签 统计

arrays ×1

bash ×1

delimited-text ×1

string ×1