0

だから私は簡単なアドレス帳を開発していますが、うまくいっています。単一のテキスト ファイルを使用してすべての情報を保存します。

すぐに、特定の文字列のファイルを検索できますが、問題はありません。

ユーザー入力に基づいて文字列を削除できると確信していますが、それは簡単ですが、検索語の出力を取得できれば、さらにおしゃれになると思いました-複数行output say - それぞれの新しい行を配列に格納し、それぞれに番号を割り当てます。そこから、ユーザーは入力に基づいて行を削除することを指定できます。

これまでのところ、これは「削除」スクリプトです。

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' は、TRY してレコードを取得し、それぞれが新しい行に表示されるようにすることです。アドバイスはありますか?

4

2 に答える 2