เช่นเคย มีมากกว่าหนึ่งวิธีที่ทำได้ ขึ้นอยู่กับข้อกำหนดที่แน่นอน
วิธีที่ง่ายที่สุดวิธีหนึ่งที่คุณสามารถทำได้:
AVARIABLE=$(sed -ne 's/.*DATE://p' document_determinationv1.txt)
นี้ไม่ได้สนใจจริง ที่ บรรทัดวันที่เปิดอยู่ จะทำงานตราบใดที่ไฟล์ของคุณมีหนึ่งบรรทัดที่มีคำหลัก DATE ตามด้วยเครื่องหมายทวิภาคและวันที่ที่คุณต้องการแยก นอกจากนี้ยังไม่ตรวจสอบว่า DATE ปรากฏเป็นคำของตัวเองหรือไม่ ไม่ว่าส่วนหลัง DATE: จะเป็นวันที่จริงหรือไม่ หรือตามด้วยขยะเพิ่มเติมใดๆ หากไฟล์ของคุณมีมากกว่าหนึ่งบรรทัดที่มี DATE ตามด้วยเครื่องหมายทวิภาค ไฟล์จะใส่ส่วนทั้งหมดหลังจากแต่ละ DATE: ลงในตัวแปร โดยคั่นด้วยการขึ้นบรรทัดใหม่ ซึ่งอาจทำให้การประมวลผลเพิ่มเติมของคุณเสียหายหรือไม่ก็ได้ ดังนั้นหากไฟล์ของคุณมี เช่น:
[DOCUMENT_DETERMINATION]
#REVISION:v1;DATE:20210805;WEIGHT:123kg
[REAL_DETERMINATION]
#PRIME:13;CANDIDATE:BART SIMPSON
จากนั้นคำสั่งจะใส่อย่างมีความสุข
20210805;น้ำหนัก:123กก
บาร์ต ซิมป์สัน
ลงในตัวแปร รวมทั้งขึ้นบรรทัดใหม่ระหว่างตัวอักษร g และ B
แต่ตราบใดที่คุณสามารถรับประกันได้ว่าไฟล์มีรูปแบบที่คุณยกมาในคำถามของคุณอย่างแน่นอน มันจะทำงานได้ดี