如何在Array中插入字符串?使用BASH脚本

时间:2017-03-29 05:58:19

标签: arrays bash

以下是myText.txt中的文字:

print("I'm going to write these to the file")
target.write("%s\n%s\n%s\n" % (line1, line2, line3))

a d b e c f ad分隔,每行以\t分隔。我想将它们插入两个数组中。

这必须是内容:

\n

到目前为止完成的代码:

  arr1=(a b c)
  arr2=(d e f)

但我不知道如何将这些值放在数组中。

1 个答案:

答案 0 :(得分:1)

让我们首先构建变量:

a=$'a\td\nb\te\nc\tf'
echo "$a"
#Output
a       d
b       e
c       f

使用纯bash拆分为数组:

while IFS=$'\t' read -r var1 var2; do
arr1+=("$var1")
arr2+=("$var2")
done <<<"$a"
declare -p arr1 arr2
#Output
declare -a arr1='([0]="a" [1]="b" [2]="c")'                                                                                                                                     
declare -a arr2='([0]="d" [1]="e" [2]="f")'

使用bash和awk拆分为数组,不带循环:

arr1=($(awk -F'\t' '{print $1}' <<<"$a"))
arr2=($(awk -F'\t' '{print $2}' <<<"$a"))
#Output as before