shell的map簡單的新增 查詢 刪除 遍歷

2021-08-30 15:38:37 字數 989 閱讀 3281

想建立乙個類似map的key——value集合

搜了下shell有沒有map,倒是搜到了declare -a mymap,需要sh版本支援(>=version 4.1.2),定義、新增、取值、遍歷

這裡用到eval,不然我不知道怎麼用awk給map賦值,之所以寫成邊處理字串或者文字邊賦值是考慮到實際使用的時候,在處理的過程中需要把處理得到的key和value賦值給map,而不是寫個for迴圈map[key]=value,那只能做已知的迴圈遍歷處理,我的需求只是處理些不是特別大的測試用的配置文字,不然就用python來寫了

測試待處理key-value文字

vim test.txt

key1:value1

key2:value2

key3:value3

key4:value4

key5:value5

#!/bin/bash  

str=(`cat ./test.txt | awk -f ' ' ''`)

declare -a mymap; #定義

for i in $

do#賦值

eval $(echo $ | awk '')

done

#輸出所有key值

echo $

#輸出所有value值

echo $

#遍歷for key in $

doecho "$"

done

#查詢和刪除

findkey="keyx"

value="valuex"

# 查詢

echo $

#查詢插入和刪除,找到就刪掉,沒找到就插入

if [ ! -n "$" ]

then

mymap[$findkey]=$value

else

echo "find value"

unset mymap[$findkey]

fi

鍊錶的新增,查詢,刪除

include include struct node 結點結構體 struct node head null 無結點時指向空 struct node tail null 頭尾指標 建立鍊錶,包括尾新增和頭新增 void addtail int data else tail sta 兩者的結構體是相...

模組的建立和新增,查詢

在visual studio code上的操作 1.建立乙個node modules的資料夾 2.在node modules中建立乙個content.router.js,tag.router.js,user.router.js的js檔案 模組 建立模組 終端 npm install mongoose...

mysql 表注釋的新增 檢視 修改

表建立時新增注釋 create table user id int not null default 0 comment 使用者id account varchar 20 not null default comment 使用者賬號 primary key id key act account en...