Score:0

ฉันจะเน้นบรรทัดของไฟล์ที่ขึ้นต้นด้วย abc และไม่ลงท้ายด้วย xyz ได้อย่างไร

ธง de

ฉันมีสคริปต์รายวันที่ดึงข้อมูลสถิติฮาร์ดแวร์จากเซิร์ฟเวอร์ RHEL ทั้งหมดของฉันทุกคืนและบันทึกลงใน yyyymmdd_daily.log ไฟล์. ฉันมีสคริปต์อื่นๆ ที่ฉันเรียกใช้กับไฟล์เหล่านี้เพื่อแยกข้อมูลเฉพาะ (เช่น DriveArrrayStatus, สถานะของฮาร์ดแวร์, ดิสก์ฟรีสเปซฯลฯ) สำหรับงานต่างๆ

ตัวอย่าง สถานะของฮาร์ดแวร์ เอาต์พุตสคริปต์:

#########################
เซิร์ฟเวอร์: abc
** แฟนคลับ **
สุขภาพ: ตกลง
** พาวเวอร์ซัพพลาย **
ความซ้ำซ้อน: เต็ม
#########################
เซิร์ฟเวอร์: bcd
** แฟนคลับ **
สุขภาพ: บางส่วน
** พาวเวอร์ซัพพลาย **
ความซ้ำซ้อน: ครึ่งหนึ่ง
#########################
เซิร์ฟเวอร์: cde
** แฟนคลับ **
สุขภาพ: ลดลง
** พาวเวอร์ซัพพลาย **
ความซ้ำซ้อน: ไม่มี
#########################
ฯลฯ ... สำหรับ 44 เซิร์ฟเวอร์

เนื่องจากแทบจะไม่มีข้อผิดพลาดใด ๆ เลย ฉันต้องการเปลี่ยนสีบรรทัดที่แสดงข้อผิดพลาดใด ๆ เมื่อฉันเรียกใช้สคริปต์ ฉันสามารถเลือกบรรทัดที่จะกลั่นกรองโดยใช้ grep:

./สถานะฮาร์ดแวร์ | grep '^สุขภาพ\|^ความซ้ำซ้อน\|$'

แต่จากที่นี่ ฉันต้องทำให้เป็นสีเฉพาะบรรทัดที่ตรวจสอบแล้วซึ่งไม่ได้ลงท้ายด้วยคำตอบที่น่าพอใจตามลำดับ:

./สถานะฮาร์ดแวร์ | grep --color=auto -v 'ตกลง$\|เต็ม$'

ฉันได้ลองวางคำสั่ง grep การเลือกบรรทัดไปยัง grep ที่สองหรือโดยใช้ egrep แต่มันเพิ่งลดบรรทัดใด ๆ ที่ไม่มีการตอบสนองที่น่าพอใจจากเอาต์พุตของสคริปต์

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก

in flag
มีเหตุผลใดที่คุณคิดค้นวงล้อขึ้นมาใหม่และไม่ใช้โซลูชันการตรวจสอบที่เหมาะสม
Score:1
ธง br
Mox

คุณสามารถใช้ สีมา แพ็คเกจใน Python เพื่อเขียนตัวกรองอย่างง่าย (หรืออาจรวมไว้ในสคริปต์ HardwareStatus ของคุณหากเขียนด้วย Python)

#!/usr/bin/env python3

นำเข้าไฟล์อินพุต
จาก colorama import init, Fore, Back, Style

ในนั้น()
สำหรับบรรทัดใน fileinput.input():
    ข้อความ = line.strip()
    ถ้า (("สุขภาพ:" ในข้อความและ "ตกลง" ไม่อยู่ในข้อความ) หรือ
        ("ความซ้ำซ้อน:" ในข้อความและ "เต็ม" ไม่อยู่ในข้อความ)):
        พิมพ์ (Back.RED + Fore.YELLOW + ข้อความ + Style.RESET_ALL)
    อื่น:
        พิมพ์(ข้อความ)

หากต้องการใช้สคริปต์ด้านบน เพียงไพพ์ผลลัพธ์ของ HardwareStatus ไปที่สคริปต์นั้นตามที่คุณทำกับ grep ในตัวอย่างด้านบน

ดู เอกสาร Colorama สำหรับรายละเอียด

โพสต์คำตอบ

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