Score:1

แยกข้อมูลเฉพาะออกจากไฟล์

ธง cn

ฉันมีไฟล์ที่สร้างจากคำสั่งที่ฉันเรียกใช้บนระบบของฉัน หลังจากสร้างไฟล์แล้ว ฉันต้องการแยกเฉพาะข้อมูลเฉพาะจากไฟล์นั้น แต่เฉพาะข้อมูลที่ตรงตามเกณฑ์ที่กำหนดเท่านั้น

นี่คือลักษณะของไฟล์ของฉัน:

ลูกค้า: tc-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        รุ่น : xxxx
        รหัส: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
        user-uid: 10,000
        ผู้ใช้:someuser
        เซิร์ฟเวอร์หลัก: xxx.xxx.xxx.xxx
        โหมดการทำงาน: ปกติ
        mac: XX:XX:XX:XX:XX:XX
        ล็อคเวลา: xx:xx:xx
        ipaddr: xxx.xxx.xxx.xxx
        ชื่อโฮสต์: tc-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        การเชื่อมต่อ-1: frdp::Green::ทดสอบ
        การเชื่อมต่อ-0: frdp::Purple::Test
ลูกค้า: tc-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        รุ่น : xxxx
        รหัส: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
        user-uid: 10,000
        ผู้ใช้:someuser
        เซิร์ฟเวอร์หลัก: xxx.xxx.xxx.xxx
        โหมดการทำงาน: ปกติ
        mac: XX:XX:XX:XX:XX:XX
        ล็อคเวลา: xx:xx:xx
        ipaddr: xxx.xxx.xxx.xxx
        ชื่อโฮสต์: tc-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        การเชื่อมต่อ-0: frdp::Purple::Test
ลูกค้า: tc-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        รุ่น : xxxx
        รหัส: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
        user-uid: 10,000
        ผู้ใช้:someuser
        เซิร์ฟเวอร์หลัก: xxx.xxx.xxx.xxx
        โหมดการทำงาน: ปกติ
        mac: XX:XX:XX:XX:XX:XX
        ล็อคเวลา: xx:xx:xx
        ipaddr: xxx.xxx.xxx.xxx
        ชื่อโฮสต์: tc-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ลูกค้า: tc-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        รุ่น : xxxx
        รหัส: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
        user-uid: 10,000
        ผู้ใช้:someuser
        เซิร์ฟเวอร์หลัก: xxx.xxx.xxx.xxx
        โหมดการทำงาน: ปกติ
        mac: XX:XX:XX:XX:XX:XX
        ล็อคเวลา: xx:xx:xx
        ipaddr: xxx.xxx.xxx.xxx
        ชื่อโฮสต์: tc-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        การเชื่อมต่อ-0: frdp::Purple::Test
ลูกค้า: tc-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        รุ่น : xxxx
        รหัส: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
        user-uid: 10,000
        ผู้ใช้:someuser
        เซิร์ฟเวอร์หลัก: xxx.xxx.xxx.xxx
        โหมดการทำงาน: ปกติ
        mac: XX:XX:XX:XX:XX:XX
        ล็อคเวลา: xx:xx:xx
        ipaddr: xxx.xxx.xxx.xxx
        ชื่อโฮสต์: tc-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ลูกค้า: tc-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        รุ่น : xxxx
        รหัส: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
        user-uid: 10,000
        ผู้ใช้:someuser
        เซิร์ฟเวอร์หลัก: xxx.xxx.xxx.xxx
        โหมดการทำงาน: ปกติ
        mac: XX:XX:XX:XX:XX:XX
        ล็อคเวลา: xx:xx:xx
        ipaddr: xxx.xxx.xxx.xxx
        ชื่อโฮสต์: tc-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        การเชื่อมต่อ-0: frdp::Purple::Test
ลูกค้า: tc-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        รุ่น : xxxx
        รหัส: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
        user-uid: 10,000
        ผู้ใช้:someuser
        เซิร์ฟเวอร์หลัก: xxx.xxx.xxx.xxx
        โหมดการทำงาน: ปกติ
        mac: XX:XX:XX:XX:XX:XX
        ล็อคเวลา: xx:xx:xx
        ipaddr: xxx.xxx.xxx.xxx
        ชื่อโฮสต์: tc-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        การเชื่อมต่อ-0: frdp::Green::ทดสอบ
ลูกค้า: tc-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        รุ่น : xxxx
        รหัส: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
        user-uid: 10,000
        ผู้ใช้:someuser
        เซิร์ฟเวอร์หลัก: xxx.xxx.xxx.xxx
        โหมดการทำงาน: ปกติ
        mac: XX:XX:XX:XX:XX:XX
        ล็อคเวลา: xx:xx:xx
        ipaddr: xxx.xxx.xxx.xxx
        ชื่อโฮสต์: tc-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        การเชื่อมต่อ-1: frdp::Green::ทดสอบ
        การเชื่อมต่อ-0: frdp::Purple::Test

ฉันต้องการแยกเฉพาะชื่อโฮสต์ไคลเอ็นต์ที่เพิ่งแสดงการเชื่อมต่อกับ Purple และไคลเอนต์ที่ไม่มีการเชื่อมต่อเป็นไฟล์ใหม่ ฉันสามารถแยกแยะชื่อโฮสต์หรือการเชื่อมต่อโดยใช้ awk ได้ แต่ไม่สามารถระบุชื่อโฮสต์หรือการเชื่อมต่อได้

แก้ไข: ฉันได้เพิ่มรายการลงในไฟล์

James S. avatar
de flag
คุณควบคุมการสร้างไฟล์นี้หรือไม่? นั่นคือผลลัพธ์นี้เป็นของโปรแกรมที่คุณเขียนขึ้นหรือไม่? โดยทั่วไปแล้ว คำสั่งใดที่สร้างเอาต์พุตนี้ เหตุใดจึงเป็นคำถามเกี่ยวกับ Ubuntu
cn flag
คำสั่งที่สร้างรายการเป็นกรรมสิทธิ์และระบบทำงานบน Ubuntu ไฟล์ถูกสร้างขึ้นโดยการรันคำสั่งและเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ นี่คือรูปแบบหลังจากรันคำสั่ง
James S. avatar
de flag
แอปพลิเคชันจำนวนมากทำงาน "บน Ubuntu" แต่การรองรับแอปพลิเคชันเหล่านั้นไม่ถูกต้อง *เกี่ยวกับ* Ubuntu คุณกำลังถามคำถามการประมวลผลข้อความทั่วไป และมีวิธีแยกวิเคราะห์ไฟล์นั้นหลายพันวิธี คุณอาจลองถามใน unix และ linux stackexchange ทั่วไป
cn flag
ขอบคุณสำหรับความช่วยเหลือ ฉันจะทำอย่างนั้น.
Score:0
ธง cn

ไฟล์อินพุตของคุณสั้นเกินไปที่จะเข้าใจสิ่งที่คุณต้องการ แต่คุณสามารถลองเริ่มต้นได้:

awk '/ชื่อโฮสต์|สีม่วง/' myfile
cn flag
ลูกค้ารายสุดท้ายคือลูกค้าที่ไม่มีการเชื่อมต่อที่ใช้งานอยู่ ดังนั้นรายการสุดท้ายจึงสั้นลง ฉันต้องดึงลูกค้ารายนั้นเข้ามาในรายการใหม่ของฉันด้วย
cn flag
ฉันได้รับชื่อโฮสต์ที่มีหรือไม่มีการเชื่อมต่อในรายการ awk -F '\t' 'ชื่อโฮสต์:/ || /connection/' myfile >> ปรับแต่งไฟล์
Score:0
ธง jp

หากฉันเข้าใจถูกต้องว่าคุณต้องการอะไร ให้กรองไคลเอนต์ที่มีการเชื่อมต่ออื่นที่ไม่ใช่ 'สีม่วง' ออกไป (เฉพาะ 'สีเขียว' ในตัวอย่างของคุณ แต่อาจเป็นสีอื่น)

คำสั่งต่อไปนี้ใช้ เกรป เพื่อลบเส้นที่มี 'สีม่วง' เพื่อสร้างหนึ่งบรรทัดและ เสด เพื่อขึ้นบรรทัดใหม่ก่อน 'ลูกค้า' และสุดท้าย เกรป เพื่อลบบรรทัดที่เหลือด้วย 'การเชื่อมต่อ' และเลือกเฉพาะข้อมูลที่ต้องการสำหรับลูกค้าแต่ละราย

ชุดข้อมูลทั้งหมด:

< 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 'ชื่อโฮสต์: .*'

โพสต์คำตอบ

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