我有一些数据存储在一个平面文件中,类似于下面显示的数据。我需要能够将数据提取到变量中,例如变量AGE等于24,变量用户等于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阵列的数据计划,所以我想知道,在年龄数组的元素0找到的数据是数据库0和元素中找到的数据1 ofr数据库1.
我遇到的问题是在语音标记之间找到的一些文本有空格。
echo ${office[0]}
将返回“英国”,而不是“英国办公室2”。
有谁知道如何解决这个问题,或者如果有更好的方法来提取数据?
谢谢。
你有一个现有的bash脚本需要这些数据?或者,你是否只是试图处理一些还没有写的脚本?如果后者则直接在awk中完成。这个输入实际上是awk已经实际上有效的(如果需要,可以将其操作为有效的awk,或者通过awk解析,这可能更“安全”)。试图将此分解成壳体阵列是在寻求麻烦。 –