首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将数组值添加到文本文件中特定行的开头

如何将数组值添加到文本文件中特定行的开头
EN

Stack Overflow用户
提问于 2019-11-05 10:08:09
回答 2查看 64关注 0票数 0

我希望将特定的数组值添加到文本文件中特定行的开头。

例如,如果我有一个数组animals=(cat, dog, bird, lizard)和一个如下所示的文本文件:

代码语言:javascript
复制
.color
.age
.size
.breed
.name

.color
.age
.size

.color
.age
.size
.breed

我怎么能把猫排到第1-5行,狗第6-8行,鸟第9-13行。(每种动物都有不同数量的切片)

输出文本文件应该如下所示:

代码语言:javascript
复制
cat.color
cat.age
cat.size
cat.breed
cat.name

dog.color
dog.age
dog.size

Bird.color
Bird.age
Bird.size
Bird.breed

任何帮助都是非常感谢的:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-05 12:10:24

看起来空行是分隔符,所以我们可以使用:

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2019-11-05 10:39:59

我怎样才能把cat放在第1-5行,然后把狗放到第6-…行?

我们还可以滥用join在不存在的字段上加入:

代码语言:javascript
复制
join --nocheck-order -j2 <(printf %s\\n ${animals[*]}) <(head -5 text)|tr -d ' '
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58709013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档