我想将特定的数组值添加到文本文件中特定行的开头。
例如,如果我有一个数组 animals=(cat, dog, bird, lizard)
和一个如下所示的文本文件:
.color
.age
.size
.breed
.name
.color
.age
.size
.color
.age
.size
.breed
我如何在第 1-5 行前面加上 cat,在第 6-8 行前面加上 dog,在第 9-13 行前面加上 bird。 (每只动物的节数不同)
输出的文本文件应该是这样的:
cat.color
cat.age
cat.size
cat.breed
cat.name
dog.color
dog.age
dog.size
Bird.color
Bird.age
Bird.size
Bird.breed
非常感谢任何帮助:)
最佳答案
看起来空行是分隔符所以我们可以使用它:
a=(cat dog bird lizard)
i=0 ac=${#a[@]}
while IFS= read -r line; do
[[ $line =~ ^$ ]] && { ((i = (i + 1) % ac)); printf '\n'; continue; }
printf '%s\n' "${a[i]}$line"
done < file
关于linux - 如何将数组值添加到文本文件中特定行的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58709013/