คำถามติดแท็ก grep

สำหรับคำถามเกี่ยวกับ grep เครื่องมือบรรทัดคำสั่งสำหรับค้นหารูปแบบข้อความในไฟล์ ใช้แท็กนี้สำหรับคำถามเกี่ยวกับ grep หรือคำถามเกี่ยวกับปัญหาที่เกิดขึ้นจากการใช้เครื่องมือบรรทัดคำสั่ง grep

3
ฉันจะระงับเอาต์พุตจาก grep ได้อย่างไรเพื่อให้ส่งคืนสถานะออกเท่านั้น
ฉันมีgrepคำสั่ง ฉันกำลังค้นหาคำหลักจากไฟล์ แต่ไม่ต้องการแสดงผลลัพธ์ grepผมแค่อยากจะรู้ว่าออกจากสถานะของ

11
มีวิธีแก้ไขไฟล์ในสถานที่หรือไม่?
ฉันมีไฟล์ขนาดใหญ่พอสมควร (35Gb) และฉันต้องการกรองไฟล์นี้ในแหล่งกำเนิด (เช่นฉันมีพื้นที่ดิสก์ไม่เพียงพอสำหรับไฟล์อื่น) โดยเฉพาะฉันต้องการ grep และไม่สนใจรูปแบบบางอย่าง - มีวิธีในการ ทำเช่นนี้โดยไม่ใช้ไฟล์อื่น สมมติว่าฉันต้องการกรองบรรทัดทั้งหมดที่มีfoo:ตัวอย่างเช่น ...

6
ค้นหาข้อความทั่วทั้งระบบไฟล์ได้อย่างไร?
สมมติว่าควรใช้เครื่องมือ grep ฉันต้องการค้นหาสตริงข้อความ "800x600" ตลอดทั้งระบบไฟล์ ฉันเหนื่อย: grep -r 800x600 / แต่มันไม่ทำงาน สิ่งที่ฉันเชื่อว่าคำสั่งของฉันควรทำคือ grep วนซ้ำผ่านไฟล์ / โฟลเดอร์ทั้งหมดภายใต้รูทสำหรับข้อความ "800x600" และแสดงรายการผลการค้นหา ผมทำอะไรผิดหรือเปล่า?
53 grep  recursive 

2
ทำไม egrep [wW] [oO] [rR] [dD] เร็วกว่าคำว่า grep -i?
ฉันใช้grep -iบ่อยขึ้นและฉันพบว่ามันช้ากว่าของegrepที่ฉันเปรียบเทียบกับตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก: $ time grep -iq "thats" testfile real 0m0.041s user 0m0.038s sys 0m0.003s $ time egrep -q "[tT][hH][aA][tT][sS]" testfile real 0m0.010s user 0m0.003s sys 0m0.006s ไม่grep -iทำแบบทดสอบเพิ่มเติมที่egrepไม่?
49 grep  performance 

3
“ อุปกรณ์ลูป” ในการติดตั้งคืออะไร?
ฉันกำลังเมานท์ไฟล์ iso และดูบทช่วยสอนนี้ พวกเขาใช้คำสั่ง: $ mount -o loop disk1.iso /mnt/disk -o loopฉันพยายามที่จะเข้าใจการใช้งานของ ฉันมีสองคำถาม: เมื่อฉันมองไปที่หน้าคนยาวสำหรับเมานต์มันต้องใช้เวลาในการหา-oตัวเลือก ถ้าฉันทำman mount | grep "-o"ฉันได้รับและข้อผิดพลาดและเมื่อฉันมองในไฟล์ฉันไม่พบข้อมูลว่า "ห่วง" -oคือข้อความคำสั่งสำหรับตัวเลือก เอกสารนั้นอยู่ที่ไหน นอกจากนี้แนวคิด "อุปกรณ์ลูป" สำหรับติดตั้งคืออะไร

2
อ่านรูปแบบ grep จากไฟล์
ฉันมีไฟล์ข้อความขนาดใหญ่สองสามไฟล์และในไฟล์UNIQS.txtฉันมีรายการสตริงgrepจากไฟล์อื่น รหัสที่ฉันใช้คือ grep -f UNIQS.txt EEP_VSL.uniqs.sam > UNIQ_templates.sam ซึ่งไม่ทำอะไรเลย - ไฟล์ที่สร้างนั้นว่างเปล่า แต่เมื่อฉันทำ grep -F -f UNIQS.txt EEP_VSL.uniqs.sam > UNIQ_templates.sam มันทำงานได้อย่างถูกต้อง สิ่งนี้ทำให้ฉันสับสนเพราะฉันไม่คิดว่าgrepจะตีความรายการในUNIQS.txtรูปแบบ regexp โดยไม่ต้องมีเครื่องหมายคำพูดและเครื่องหมายทับและอยู่ในไฟล์ (ซึ่งไม่มี) โดยทั่วไปแล้วถ้าคุณได้รับรูปแบบจากไฟล์มันจะคิดว่ามันเป็นรูปแบบ regexp โดยอัตโนมัติหรือไม่? แก้ไข:ในUNIQS.txtไฟล์มีสตริงที่คั่นด้วยบรรทัดใหม่ของฟอร์ม HWI-ST365:215:D0GH0ACXX:2:1101:10034:186783 (เรียกว่าชื่อเทมเพลต) และEEP_VSL...แท็บไฟล์คั่นคอลัมน์ด้วยประมาณ 14 คอลัมน์และคอลัมน์แรกคือชื่อเทมเพลตดังนั้นโดยทั่วไปฉันต้องการแยกบรรทัดที่สอดคล้องกับเทมเพลตแต่ละไฟล์
49 grep 

13
วิธีการพิมพ์ทุกบรรทัดหลังจากการจับคู่ถึงจุดสิ้นสุดของไฟล์?
อินพุตไฟล์ 1 คือ: dog 123 4335 cat 13123 23424 deer 2131 213132 bear 2313 21313 ฉันให้รูปแบบตรงกันจากในother file(เช่นdog 123 4335จาก file2) ฉันตรงกับรูปแบบของเส้นคือdog 123 4335และหลังจากพิมพ์ทุกบรรทัดโดยไม่ต้องจับคู่บรรทัดผลลัพธ์ของฉันคือ: cat 13123 23424 deer 2131 213132 bear 2313 21313 หากใช้เฉพาะที่ไม่มีที่อยู่ของบรรทัดใช้รูปแบบเท่านั้นตัวอย่างเช่น1s วิธีจับคู่และพิมพ์บรรทัด?

5
ให้เอาต์พุต grep เป็น rm
ฉันพยายามที่จะgrepส่งออกท่อไปrmแต่มันก็ส่งผลสิ่งที่ไร้ประโยชน์ จำเป็นต้องมีสวิตช์rmหรือไม่ หรือสามารถrmให้ regexp โดยตรงได้หรือไม่ ls | grep '^\[Daruchini'| rm rm: ตัวถูกดำเนินการที่หายไปลองใช้ `rm - ช่วย 'สำหรับข้อมูลเพิ่มเติม
47 bash  grep  rm 


3
วิธีคืนทั้งชื่อไฟล์และหมายเลขบรรทัดด้วย find … -exec grep
เมื่อใช้findงานฉันจะคืนชื่อไฟล์และหมายเลขบรรทัดเมื่อค้นหาสตริงได้อย่างไร ฉันจัดการเพื่อส่งคืนชื่อไฟล์ในคำสั่งเดียวและหมายเลขบรรทัดด้วยชื่ออื่น แต่ฉันไม่สามารถรวมพวกเขาได้ ชื่อไฟล์: find . -type f -exec grep -l 'string to search' {} \; หมายเลขบรรทัด: find . -type f -exec grep -n 'string to search' {} \;
45 grep  find 

4
ย้อนกลับ grepping
สมมติว่าฉันมีไฟล์ข้อความขนาดใหญ่จริงๆ (ประมาณ 10.000.000 บรรทัด) ฉันต้องการgrepมันจากตอนท้ายและบันทึกผลลัพธ์ลงในไฟล์ วิธีที่มีประสิทธิภาพที่สุดในการทำงานให้สำเร็จคืออะไร?

3
วิธีการแสดงเส้นหลังจากการจับคู่ grep แต่ละครั้งจนถึงการจับคู่ที่เฉพาะเจาะจงอื่น ๆ
ฉันรู้ว่าด้วยการใช้"-A NUM"สวิตช์ฉันสามารถพิมพ์จำนวนบรรทัดต่อท้ายเฉพาะหลังจากการแข่งขันแต่ละครั้ง ฉันแค่สงสัยว่ามันเป็นไปได้ที่จะพิมพ์เส้นต่อท้ายจนกว่าจะพบคำที่เฉพาะเจาะจงหลังจากการแข่งขันแต่ละครั้ง เช่นเมื่อฉันค้นหา "Word A" ฉันต้องการดูบรรทัดที่มีคำว่า "Word A" และบรรทัดหลังจากนั้นจนถึงบรรทัดที่มี "Word D" บริบท: Word A Word B Word C Word D Word E Word F คำสั่ง: grep -A10 'Word A' ฉันต้องการผลลัพธ์นี้: Word A Word B Word C Word D
44 grep 

7
ฉันจะนับจำนวนครั้งของคำในไฟล์ข้อความด้วยบรรทัดคำสั่งได้อย่างไร
ฉันมีไฟล์ JSON ขนาดใหญ่ที่อยู่บนบรรทัดเดียวและฉันต้องการใช้บรรทัดคำสั่งเพื่อให้สามารถนับจำนวนคำที่เกิดขึ้นในไฟล์ได้ ฉันจะทำสิ่งนั้นได้อย่างไร
43 bash  command-line  grep  json 

4
grep: หน่วยความจำหมด
ฉันกำลังค้นหาง่าย ๆ : grep -R Milledgeville ~/Documents และหลังจากระยะเวลาหนึ่งข้อผิดพลาดนี้ปรากฏขึ้น: grep: memory exhausted ฉันจะหลีกเลี่ยงสิ่งนี้ได้อย่างไร ฉันมี RAM 10GB ในระบบของฉันและมีแอปพลิเคชั่นบางตัวที่ทำงานอยู่ดังนั้นฉันจึงประหลาดใจจริงๆที่ grep ธรรมดาหมดหน่วยความจำ ~/Documentsประมาณ 100GB และมีไฟล์ทุกชนิด grep -RI อาจไม่มีปัญหานี้ แต่ฉันต้องการค้นหาในไฟล์ไบนารีเช่นกัน

5
วิธีการเรียกใช้ grep ในคอลัมน์เดียว?
ฉันต้องการ grep ผลลัพธ์ของls -lคำสั่งของฉัน: -rw-r--r-- 1 root root 1866 Feb 14 07:47 rahmu.file -rw-r--r-- 1 rahmu user 95653 Feb 14 07:47 foo.file -rw-r--r-- 1 rahmu user 1073822 Feb 14 21:01 bar.file ฉันต้องการเรียกใช้grep rahmuในคอลัมน์ $ 3 เท่านั้นดังนั้นผลลัพธ์ของgrepคำสั่งของฉันควรมีลักษณะเช่นนี้: -rw-r--r-- 1 rahmu user 95653 Feb 14 07:47 foo.file -rw-r--r-- 1 rahmu user 1073822 …
42 grep  awk 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.