所以我正在开发一个简单的地址簿,它很好。 它使用单个文本文件来存储其所有信息。搜索一个字符串,输出到一个数组,然后根据用户输入删除它
在一分钟我可以搜索文件的特定字符串,而不是问题。
我敢肯定,我可以根据用户输入删除一个字符串,这很容易,但我认为是额外的时髦,它将是一个整洁的想法,如果我可以抓住搜索词的输出 - 多行输出说 - 并将每个新行存储到一个数组,每个分配一个数字。 从那里用户可以指定他们想要根据他们的输入删除该行。
到目前为止,这是“删除”脚本:
ADDRESSBOOK=~/Documents/Address-Book/add_data.txt
export ADDRESSBOOK
echo "=============================== Delete a Record ==============================="
echo "==============================================================================="
echo "============ Search A Record, then delete it! Type 'exit' to exit ============="
exit=0
search(){
while [ $exit -ne 1 ]
do
echo "Find something for me to delete"
echo -n "-----------------------> "
read searchTerm
if [ "$searchTerm" = "exit" ]
then
exit=1
else
searchOutput=$(grep $searchTerm*.$ $ADDRESSBOOK | sort)
echo "$searchOutput"
fi
done
exit 0
}
search
地址簿自动将每个记录与/ N所以无论如何显示在新行的每个记录。
是否可以接受$ searchRecord变量并将其传递给数组?
而在我围绕着阵列环绕我的头之前,这是甚至是我想要做的最好的方法吗?
目前我正在试图沿着
if [ "$searchTerm" = "exit" ]
then
exit=1
else
searchOutput=$(grep $searchTerm*.$ $ADDRESSBOOK | sort)
echo {$searchOutput[*] '/n' }
fi
的“/ N”线的东西是尝试并获得记录每出现在一个新的生产线。任何建议家伙?
我会用''\ n'',这是ASCII新线的适当的代表开始。 – Rubens