Score:0

จะลบบันทึกออกจากไฟล์โดยใช้ bash scipt ได้อย่างไร

ธง pr

ฉันยังใหม่กับการเขียนสคริปต์ (หนึ่งสัปดาห์ต่อมา) และกำลังลองใช้โปรแกรมที่สร้างสมุดที่อยู่สำหรับผู้ใช้ซึ่งพวกเขาสามารถบันทึกรายละเอียดของเพื่อนได้ อันดับแรก ฉันขอให้ผู้ใช้ตั้งชื่อสมุดที่อยู่ของพวกเขา และเก็บไว้ในตัวแปร 'abname' จากนั้นฉันจะรับอินพุตที่จำเป็นจากผู้ใช้และพิมพ์ลงในไฟล์ข้อความ abname.txt

ปัญหาของฉัน: ฉันจะลบเรกคอร์ดที่สอดคล้องกับ ID ที่ผู้ใช้ระบุได้อย่างไร นี่คือสิ่งที่ฉันทำ:

#!/bin/bash


รหัส = "1"
ในขณะที่(จริง)
ทำ
    echo -e "\nเมนู\n1.สร้างสมุดรายชื่อใหม่\n2.ดูเนื้อหาทั้งหมดของสมุดที่อยู่\n3.แทรกบันทึกใหม่\n4.ลบบันทึก\n5.แก้ไขบันทึก\n6.ออก"
    echo -e "\nป้อนตัวเลือกของคุณ: "
    อ่านช
    echo -e "\nคุณได้เลือกตัวเลือก: $ch"
    กรณี $ch ใน
    1)
    echo -e "\nป้อนชื่อสมุดที่อยู่"
    อ่าน $abname;;  

    2)
    echo -e "\nAddress Book: $abname" # ชื่อของสมุดที่อยู่ไม่พิมพ์ที่นี่ด้วยเหตุผลบางประการ
    echo -e "\nID\t ชื่อ\t อายุ\t ที่อยู่"
    แมว $abname.txt;; #พิมพ์เนื้อหาทั้งหมดของไฟล์

    3)
    echo -e "\nId ของบุคคลคือ: $id"    
    echo -e "\nใส่ชื่อบุคคล: "
    อ่านชื่อ
    echo -e "\nป้อนอายุ: "
    อ่านอายุ
    echo -e "\nป้อนที่อยู่: "
    อ่านเพิ่ม
    printf "$id\t $name\t $age\t $addr\n" >> $abname.txt
    id=$((id+1));; 

    4)
    echo -e "\nป้อน ID ของบุคคลที่จะลบบันทึก:"
    อ่านรหัส
    grep -v "$id" $abname.txt > $abname.txt
    echo "บันทึกถูกลบ"
    แมว abname.txt;;

    5)
    echo -e "\n สิ่งที่ต้องทำ";;

    6)ออก ;;
    *) echo -e"\nตัวเลือกไม่ถูกต้อง";;
    เอสแซค
เสร็จแล้ว

ความช่วยเหลือเพิ่มเติม: หากมีไฟล์ abname.txt อยู่แล้ว ฉันต้องการอัปเดตตัวแปร 'id' ในเครื่องของฉันที่สอดคล้องกับ id ของบุคคลสุดท้ายในไฟล์ข้อความ ฉันพยายามดำเนินการแล้ว แต่ไม่ได้ผล ฉันพลาดอะไรไปที่นี่

ถ้า [ -e $abname.txt ]
แล้ว
    ที่มา <$abname.txt>
    ไอดี = $ไอดี
ไฟ
waltinator avatar
it flag
วางสคริปต์ของคุณใน `https://shellcheck.net` ซึ่งเป็นตัวตรวจสอบไวยากรณ์เสมอ หรือติดตั้ง `shellcheck` ในเครื่อง ใช้ 'shellcheck' เป็นส่วนหนึ่งของกระบวนการพัฒนาของคุณ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา