【发布时间】:2015-02-23 17:14:30
【问题描述】:
我有一个 test.txt 文件,其中包含键值对,就像任何其他属性文件一样。
test.txt
Name="ABC"
Age="24"
Place="xyz"
我想将不同键值的值提取到相应的变量中。为此,我编写了以下 shell 脚本
master.sh
file=test.txt
while read line; do
value1=`grep -i 'Name' $file|cut -f2 -d'=' $file`
value2=`grep -i 'Age' $file|cut -f2 -d'=' $file`
done <$file
但是当我执行它时;它运行不正常,给了我由命令的grep 部分提取的整行作为输出。有人可以指出错误吗?
【问题讨论】:
-
为什么cut命令后面还有一个$file?离开它。您已经通过管道从 grep 命令中获得了指定的行。它可能看起来像 value1=`grep -i 'Name' $file|cut -d'=' -f2 注意 grep -i 命令。忽略大小写。如果字符组合年龄或姓名出现在一个值中,您的 grep 命令可能会返回 2 行。
-
不,它只返回一行.. 但是在删除 $file 之后,我的问题仍然存在@user3387542
-
你为什么不干脆
source test.txt?