我有一些數據存儲在一個平面文件中,類似於下面顯示的數據。我需要能夠將數據提取到變量中,例如變量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解析,這可能更「安全」)。試圖將此分解成殼體陣列是在尋求麻煩。 –