Score:0

grep date จากบรรทัดที่ 2 ของไฟล์ข้อความ

ธง ng

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

[DOCUMENT_DETERMINATION]
#REVISION:v1;DATE:20210805
ng flag
[DOCUMENT_DETERMINATION]
Score:2
ธง cn

เช่นเคย มีมากกว่าหนึ่งวิธีที่ทำได้ ขึ้นอยู่กับข้อกำหนดที่แน่นอน

วิธีที่ง่ายที่สุดวิธีหนึ่งที่คุณสามารถทำได้:

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

แต่ตราบใดที่คุณสามารถรับประกันได้ว่าไฟล์มีรูปแบบที่คุณยกมาในคำถามของคุณอย่างแน่นอน มันจะทำงานได้ดี

hr flag
แน่นอนคุณสามารถทำให้มันสนใจได้อย่างง่ายดายว่าอยู่บรรทัดไหน - โดยการเปลี่ยน `s` เป็น `2s` เช่น
ng flag
มันใช้งานได้กับคำสั่งนี้ที่คุณให้มา ขอบคุณมาก
Score:0
ธง gb

คุณสามารถทำสิ่งต่อไปนี้:

ไฟล์แมว.txt | sed "2q;d" | awk -F: '{พิมพ์ $3}'
  • แมว พิมพ์เนื้อหาไฟล์ลงในไพพ์
  • เสด ใช้ไปป์นี้และส่งออกบรรทัดที่สอง
  • ที่ อึดอัด แบ่งตามเครื่องหมายทวิภาคและพิมพ์อาร์กิวเมนต์ที่สามในที่สุด

คุณสามารถลองแต่ละคำสั่งแยกกันได้ และถ้าคุณต้องการเก็บข้อมูลทั้งหมดไว้ในตัวแปร ให้ใช้ $(คำสั่ง) ไวยากรณ์:

VAR=$(cat file.txt | sed "2q;d" | awk -F: '{พิมพ์ $3}')

และพิมพ์ผลลัพธ์:

สะท้อน $VAR
hr flag
คุณไม่จำเป็นต้องใช้ `cat` และคุณไม่จำเป็นต้องใช้ sed หากคุณใช้ `NR` ของ awk เพื่อเลือกบรรทัด เช่น `awk -F'[;:]' 'NR==2 {พิมพ์ $4}' document_determinationv1.txt`

โพสต์คำตอบ

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