หากฉันเข้าใจถูกต้องว่าคุณต้องการอะไร ให้กรองไคลเอนต์ที่มีการเชื่อมต่ออื่นที่ไม่ใช่ 'สีม่วง' ออกไป (เฉพาะ 'สีเขียว' ในตัวอย่างของคุณ แต่อาจเป็นสีอื่น)
คำสั่งต่อไปนี้ใช้ เกรป
เพื่อลบเส้นที่มี 'สีม่วง' ท
เพื่อสร้างหนึ่งบรรทัดและ เสด
เพื่อขึ้นบรรทัดใหม่ก่อน 'ลูกค้า' และสุดท้าย เกรป
เพื่อลบบรรทัดที่เหลือด้วย 'การเชื่อมต่อ' และเลือกเฉพาะข้อมูลที่ต้องการสำหรับลูกค้าแต่ละราย
ชุดข้อมูลทั้งหมด:
< myfile grep -v 'สีม่วง' | tr '\n' ' '| tr -s ' ' ' | sed "s/ ลูกค้า/\nลูกค้า/g" \
| grep -v 'การเชื่อมต่อ'
ชื่อโฮสต์และสิ่งที่อยู่ด้านหลัง:
< myfile grep -v 'สีม่วง' | tr '\n' ' '| tr -s ' ' ' | sed "s/ ลูกค้า/\nลูกค้า/g" \
| grep -v 'การเชื่อมต่อ' | grep -o 'ชื่อโฮสต์: .*'
ชื่อโฮสต์เท่านั้นที่คุณต้องการตามที่ฉันอ่านได้:
< myfile grep -v 'สีม่วง' | tr '\n' ' '| tr -s ' ' ' | sed "s/ ลูกค้า/\nลูกค้า/g" \
| grep -v 'การเชื่อมต่อ' | grep -o 'ชื่อโฮสต์: [^ ]*'
กลุ่มอื่น (ที่ควรกรองออก) ที่มีชื่อโฮสต์และการเชื่อมต่ออื่นที่ไม่ใช่ 'สีม่วง':
< myfile grep -v 'สีม่วง' | tr '\n' ' '| tr -s ' ' ' | sed "s/ ลูกค้า/\nลูกค้า/g" \
| grep 'การเชื่อมต่อ' | grep -o 'ชื่อโฮสต์: .*'