gpt4 book ai didi

linux - 将平面文件中的文本读入变量

转载 作者:太空狗 更新时间:2023-10-29 11:21:39 25 4
gpt4 key购买 nike

我有一些数据存储在一个平面文件中,类似于下面显示的数据。我需要能够将数据提取到变量中,例如变量 AGE 等于 24,变量 user 等于 user01。我还需要能够分辨出数据是针对哪个数据库的,比如 db[0] 和 db[1] 等等。

db[0].age="24"
db[0].user="user01"
db[0].password="pasword01"
db[0].office="usa office 1"

db[1].age="44"
db[1].userID="user01"
db[1].userPW="password02"
db[1].office="uk office 2"

到目前为止,我所做的是使用 awk 搜索年龄的所有实例,并将方括号中的数字提取到数组中。

databaseCount=($(awk '/'"age"'/' flatFile | cut -d "[" -f2 | cut -d "]" -f1))

然后我在考虑使用类似的 awk 来提取括号中的文本并将该数据放入数组中。

age=($(awk '/'"dbUserAlias"'/' flatFile | cut -d\" -f2))

然后我计划使用 databaseCount 来查找 weach 数组的数据,所以我会知道在 age 数组的元素 0 中找到的数据是数据库 0 而在元素 1 中找到的数据是数据库 1。

我遇到的问题是语音标记之间的某些文本有空格。

echo ${office[0]} 

将返回“uk”而不是“uk office 2”。

有谁知道如何解决这个问题,或者是否有更好的方法来提取数据?

谢谢。

最佳答案

如果您以这种方式访问​​数组,您应该用双引号括起您的元素,用以下代码替换您的代码:

age=($(printf "\"$(awk '/'"dbUserAlias"'/' flatFile | cut -d\" -f2)\""))

关于linux - 将平面文件中的文本读入变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36428154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com