我有一个包含key=value
对列表的文件,每个对都有自己的行。使用shell命令获取指定键的值的最佳方法是什么?
答案 0 :(得分:6)
怎么样
grep "key" my_file | cut -d'=' -f2
答案 1 :(得分:1)
这就是我在ksh中的表现。
FOO=$(grep "^key=" $filename | awk -F"=" '{print $2}')
您也可以使用cut而不是awk。如果使用空格分隔密钥对,则可以删除-F“=”。
答案 2 :(得分:1)
read -r -p "Enter key to fetch: " key
awk -vk="$key" -F"=" '$1~k{ print "value for "k" is "$2} ' file
输出
$ ./shell.sh
Enter key to fetch: key1
value for key1 is value1
或者你可以使用shell(例如bash)
read -r -p "Enter key to fetch: " key
while IFS="=" read -r k v
do
case "$k" in
*"$key"* ) echo "value of key: $k is $v";;
esac
done <"file"