RosettaCodeData/Task/Associative-array-Creation/UnixPipes/associative-array-creation.up

45 lines
502 B
Plaintext

map='p.map'
function init() {
cat <<EOF > $map
apple a
boy b
cat c
dog d
elephant e
EOF
}
function put() {
k=$1; v=$2;
del $k
echo $v $k >> $map
}
function get() {
k=$1
for v in $(cat $map | grep "$k$"); do
echo $v
break
done
}
function del() {
k=$1
temp=$(mktemp)
mv $map $temp
cat $temp | grep -v "$k$" > $map
}
function dump() {
echo "-- Dump begin --"
cat $map
echo "-- Dump complete --"
}
init
get c
put c cow
get c
dump