2017-12-01 11 views
0

私はcsvファイルから連絡先を削除するスクリプトを持っています。 2109428409csvファイルに重複する行

スクリプトが消去されます入力姓と行全体をユーザーに尋ねるジョン、ドウ、:名、姓、電話番号

例:

CSVファイルは次のようです。 csvファイルに姓が重複している場合、削除したい2人の連絡先の1人の名前をユーザーに尋ねるにはどうすればよいですか? ここに私のコードは、私たちは以下のようなものを追加することができます

#!/bin/bash 

    echo "Tell Me The Contact's Last Name you want to delete" 
    read LastName 
    if grep -q $LastName contacts.csv 
    then 
    sed -i '/'$LastName'/d' contacts.csv 
    else 
    echo "The surname you typed doesn't exist or isn't valid" 
    fi 
+0

あなたがすでに使用しているのと同じ方法を使用してみたのですか?ですか – TinyTheBrontosaurus

+0

これは学習のためのものであれば問題ありませんが、重複を削除したい実際のデータがある場合は、 'sort -u -o datFile datFile'を検討してください。がんばろう。 – shellter

+0

私は実際に同じ方法で、私が望む結果を実際に得られないようにしようとしています。そして、ええこれは学習のためだけです。 –

答えて

0

、スクリプトに、

#!/bin/bash 

    echo "Tell Me The Contact's Last Name you want to delete" 
    read LastName 
    # --------------------------------------------------------# 
    if [ $(grep $LastName contacts.csv | wc -l) -gt 1 ];then # --> check the count of Last name in file 
     echo "enter the first name from below list of contact you want to remove" 
     grep $LastName contacts.csv  # --> Display list of entries with same Last Name 
     read firstName     # --> Read First name Input from user 
     sed -i '/'$firstName,$LastName'/d' contacts.csv # --> delete row with first name and Last Name. 
    elif [ $(grep $LastName contacts.csv | wc -l) -eq 1 ];then 
    # --------------------------------------------------------# 
     sed -i '/'$LastName'/d' contacts.csv 
    else 
     echo "The surname you typed doesn't exist or isn't valid" 
    fi 
関連する問題