Bash:用第n个数组索引替换第n行文件中的文本

时间:2016-11-16 20:39:08

标签: arrays bash loops

尝试替换平面文件中的MAC地址。在下面的代码中,地址成功映射到数组。我试图使用计数器来增加每个循环上的数组索引,目的是用 n 中的 n 地址替换 n 行上的地址。

sed块有效地替换了地址,但仅限于数组索引 0 的条目。

mapfile -t Arr1 < <(text processing commands)

i=0  
while read line 
do
  sed -E "s/([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}/${Arr1[$i]}/"
  ((i++))
done < $macFile

1 个答案:

答案 0 :(得分:2)

问题是sed正在读取标准输入,因此它不是读取$line变量的内容,而是读取$macFile指定的文件的内容(除了read第一行,已经被<<< "$line"抓住了。

要解决此问题,请将sed添加到var jsonfile = require('jsonfile'); 命令的末尾。