Score:-4

ฉันสามารถสร้างเครื่องมือค้นหา grep ที่กำหนดเองได้หรือไม่

ธง in

ฉันพยายามค้นหาอุปกรณ์เฉพาะในเครื่องของฉัน ดังนั้นฉันจึงพิมพ์ใน lspci นี่ทำให้ฉันมีรายการมากมาย ใหญ่เกินไปที่จะมองผ่านๆ เพื่อดูว่าอุปกรณ์ของฉันยังติดอยู่หรือไม่ ฉันจึงวิ่ง:

lspci | grep nvidia

สิ่งนี้ไม่ได้ส่งคืนอะไรเลย ดังนั้นฉันจึงลอง "Nvidia" แต่ก็ไม่ได้อะไรเลย และสุดท้ายฉันก็ลองใช้ "NVIDIA" และนั่นคือตอนที่ฉันได้รับความนิยม

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

ถ้าเป็นเช่นนั้น ใครก็ได้ช่วยชี้แนะแนวทางที่ถูกต้องแก่ฉันเกี่ยวกับการเรียนรู้วิธีการทำเช่นนี้ แม้ว่าจะเป็นวรรณกรรมบางเล่มที่ฉันสามารถอ่านในหัวข้อได้ก็จะดีมาก

แม้ว่าฉันจะใช้เวลาหนึ่งเดือน ฉันก็อยากเรียนรู้วิธีพัฒนาเครื่องมือของตัวเองด้วยฟังก์ชันดังกล่าว

ขอบคุณ.

TomE avatar
br flag
ลองทำ "man grep" ในเทอร์มินัลเพื่อรับคำแนะนำการใช้งาน Grep เป็นเครื่องมือที่ทรงพลังมาก ตัวอย่างเช่น หากต้องการทำสิ่งที่คุณพยายามทำ เพียงเพิ่มตัวเลือก -i เพื่อให้ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ เช่น lspci |grep -i nvidia
pLumo avatar
in flag
ประสิทธิภาพแย่มากเมื่อเทียบกับ `grep` แต่ใช้งานได้: `grepi(){ shopt -s nocasematch; ในขณะที่ IFS= อ่านบรรทัด; ทำ [[ "$line" =~ $1 ]] && printf '%s\n' "$line"; เสร็จสิ้น;}` --> `lspci | เกรปิ nvidia`. อย่างไรก็ตาม imo นี่เป็นคำถามเกี่ยวกับการเขียนโปรแกรมและนอกหัวข้อที่นี่
Score:6
ธง cn

ผู้ชายเกรป จะให้ข้อมูลเกี่ยวกับวิธีใช้ grep เดอะ -ผม ตัวเลือกจะทำสิ่งที่คุณต้องการ: ละเว้นกรณี ดังนั้นคำสั่ง

lspci | grep -i nvidia

จะได้เรียกคืน NVIDIA

หากคุณต้องการสร้างเครื่องมือของคุณเอง วิธีง่ายๆ คือกำหนดนามแฝง:

นามแฝง 'grep=grep -i'

นี้กำหนดเอง เกรป คำสั่งจะบ่งบอกถึง -ผม ตัวเลือกทุกครั้งที่คุณเรียกใช้ เกรป. หลังจากกำหนดนามแฝงแล้ว คำสั่งดั้งเดิมของคุณจะทำงานตามที่คุณต้องการ ไม่จำเป็นต้องตั้งโปรแกรมเครื่องมือของคุณเองเพิ่มเติม

นิยามนามแฝงนี้ใช้ได้กับเซสชันปัจจุบันเท่านั้น หากต้องการเปิดใช้งานตัวเลือกอย่างถาวร ให้เปิด ~/.bashrc ไฟล์ด้วยโปรแกรมแก้ไขข้อความและเพิ่มไฟล์ -ผม ตัวเลือกใน นามแฝง คำจำกัดความที่มีอยู่แล้ว:

นามแฝง grep='grep -i --color=auto'

โพสต์คำตอบ

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