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

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

1
การค้นหาข้อความที่ไม่ถูกต้อง
มีประโยชน์เช่นgrepหรือแม้กระทั่งuniqสำหรับการค้นหาที่ไม่แน่นอนหรือฉันควรเขียนเอง? ฉันหมายถึงมันจะดูการจับคู่ 90% (ตัวเลขอาจเปลี่ยนแปลง) หรืออะไรทำนองนั้น ตัวอย่างเช่นฉันมีไฟล์ที่มีหลายสตริง: abc123 abd123 abc223 qwe938 ในกรณีนี้ยูทิลิตี้ดังกล่าวควรส่งคืนสามสตริงแรกหรือบอกว่าคล้ายกัน แน่นอนผมไม่ทราบว่ารูปแบบใด ๆ ของเนื้อหาของไฟล์เช่นในกรณีที่มีหรือgrepuniq

5
จะทำการ grep บน FTP ได้อย่างไร?
ฉันพยายามค้นหาคำสั่งที่คล้ายกันในncftp(อันที่จริงนี่เป็นไคลเอ็นต์เทอร์มินัล ftp เดียวที่ฉันใช้) และฉันไม่พบมัน มีวิธี (ถ้าเป็นไปได้ทั้งหมด) ในการใช้grepคำสั่งบนเซิร์ฟเวอร์ระยะไกลเพื่อค้นหาสตริงในไฟล์อะไร

5
ค้นหาโฟลเดอร์ซ้ำ แต่ไม่รวมโฟลเดอร์ย่อย svn
ฉันต้องการค้นหาสิ่งที่เกิดขึ้นทั้งหมดfooในระบบไฟล์ขนาดใหญ่ที่ดูแลโดย SVN แต่ฉันไม่ต้องการจับคู่สิ่งที่มีอยู่ใน.svnไดเรกทอรีใด ๆ ฉันได้รับการจับคู่ทันทีเมื่อฉันทำgrep -l -e 'foo' *แต่เมื่อฉันลองและแยกไดเรกทอรี svn ด้วยgrep -l -e 'foo' --exclude-dir=".svn"คำสั่งเพียงแค่หยุดทำงาน ผมทำอะไรผิดหรือเปล่า?
10 grep 

3
วิธี grep ในซอร์สโค้ดโดยไม่ต้องแสดงความคิดเห็น
ฉันค้นหาวิธีการ grep ในซอร์สโค้ดโดยไม่ต้องมีบางครั้งเป็นเท็จบวกเนื่องจากความคิดเห็น เช่นถ้าฉันค้นหา foo ในรหัสที่มา. c: /* * foo has changed [...] and is now a 2-parameters function */ // foo(24) foo(42, 28); ไร้เดียงสาgrepจะพบเหตุการณ์ 3 ครั้งที่ฉันต้องการเพียงครั้งเดียว ฉันได้เห็นวิธีนี้ใน StackOverflow แต่ไม่ได้เติมเต็มความต้องการของฉัน: PHP ไม่สามารถใช้ได้บนแพลตฟอร์ม ฉันได้พบวิธีนี้สำหรับการแสดงความคิดเห็นแบบบรรทัดเดียว แต่มันแก้ปัญหาได้เพียงบางส่วนเท่านั้น ฉันต้องใช้เครื่องมือการเขียนสคริปต์แบบคลาสสิก (awk, sed, bash, grep และอื่น ๆ ) และฉันต้องการมันเร็วแม้ว่าจะมีไฟล์หลายพันไฟล์ก็ตาม ตอนนี้คุณสามารถ grep ในรหัสแหล่งที่มาและวิธีการเท่านั้นและรหัสแหล่งที่มา?
10 files  grep  source 

2
“ Grep แตกทำให้กระบวนการบู๊ตหยุดตลอดไป”
คำถามภายในคำถาม (จากDebian wiki ): ฉันควรใช้ sid บนเดสก์ท็อปของฉันหรือไม่ หากคุณคิดว่าคุณสามารถจัดการกับระบบ Debian ที่เสียหายได้แน่นอน คุณรู้หรือไม่ว่าจะต้องทำอย่างไรหาก libpam0g หยุดพักเพื่อป้องกันการเข้าสู่ระบบทั้งหมด? คุณรู้ว่าจะทำอย่างไรถ้า grep แตกทำให้กระบวนการบู๊ตหยุดทำงานตลอดไป? สิ่งเหล่านี้เกิดขึ้น พวกเขาจะเกิดขึ้นอีกครั้ง คำถามของฉันคือgrepกระบวนการบูตแตกหักได้อย่างไร
10 boot  grep 

3
สี greit คอมไพล์แตกต่างจากสีที่กำหนดเอง grep
ฉันได้ตั้งค่าสี grep ในของฉัน~/.bashrc: export GREP_COLORS='ms=01;34:mc=01;34:sl=:cx=:fn=35:ln=32:bn=32:se=36' พวกเขาทำงานเพื่อ grep --color=auto grep --color=always น่าเสียดายที่สีที่กำหนดเองเหล่านั้นถูกละเว้นโดย: git grep --color=auto git grep --color=always วิธีการgit grepใช้$GREP_COLORSสีด้านบน

3
วิธีรันบรรทัดที่มาจากผลลัพธ์ grep
ฉันมีไฟล์ข้อความพร้อมคำแนะนำในการติดตั้งและฉันรู้ว่าฉันสามารถ grep สำหรับเหตุการณ์ที่ไม่ซ้ำกันในไฟล์ ตัวอย่างเช่นไฟล์ข้อความมีลักษณะดังนี้: MYDIR = `find / home / ชื่อผู้ใช้ somedir` ส่งออก PERL5LIB = $ PERL5LIB: $ MYDIR ในทุบตีฉันจะรันบรรทัดหลังจาก grep ในไฟล์ได้อย่างไร สิ่งที่ต้องการ: เรียกใช้ผลลัพธ์จาก "grep somedir INSTALLFILE" เรียกใช้ผลลัพธ์จาก "grep 'export PERL5LIB' INSTALLFILE"
10 bash  grep 

4
ค้นหาสตริงในไฟล์เฉพาะภายในไดเรกทอรีย่อย
สมมติว่าฉันต้องการค้นหาฟังก์ชันGetTypes()ในทุกไฟล์ต้นฉบับ C # ( .cs) ไดเรกทอรี / ไดเรกทอรีย่อย ผมใช้แต่ฉันได้ข้อผิดพลาดกับgrep -rn GetTypes *.cs grep: *.cs: No such file or directoryฉันต้องใช้grep -rn GetTypes *แต่ในกรณีนี้มันแสดงไฟล์ทั้งหมดไม่*.csเพียง ฉันต้องใช้คำสั่งอะไรเพื่อค้นหาสตริงใน.csไฟล์เท่านั้น?

6
มีทางเลือกอื่นใดสำหรับสวิตช์ -A -B -C grep ของ (เพื่อพิมพ์สองสามบรรทัดก่อนและหลัง)?
grep -A 2 -B 3 พิมพ์ 2 บรรทัดหลังสตริง grep และพิมพ์ 3 บรรทัดก่อนหน้า grep -C 3 พิมพ์ 3 บรรทัดก่อนหน้าและ 3 บรรทัดหลัง น่าเสียดายที่grepฉันใช้ไม่รองรับตัวเลือกเหล่านี้ มีคำสั่งหรือสคริปต์ทางเลือกอื่นที่สามารถจำลองได้หรือไม่? ใช้sed/ awk/ perl/ เชลล์สคริปต์หรือไม่

5
กำลังค้นหาซับสตริงในไฟล์ข้ามไดเรกทอรีย่อยด้วยคำสั่งในตัวเดียวหรือไม่
ใน Windows ถ้าฉันต้องการค้นหาสตริงในไฟล์ทั้งหมดในไดเรกทอรีย่อยทั้งหมดฉันจะทำสิ่งที่ต้องการ findstr /C:"the string" /S *.h อย่างไรก็ตามในลินุกซ์ (พูด, อูบุนตู) ฉันได้พบไม่มีวิธีอื่นนอกเหนือจากคำสั่งประปาบางส่วนที่เกี่ยวข้องกับการfind, xargsและgrep(ตัวอย่างที่หน้านี้: ? ฉันจะซ้ำ grep ผ่านไดเรกทอรีย่อย ) อย่างไรก็ตามคำถามของฉันแตกต่างกัน: มีคำสั่งในตัวเดียวที่ทำงานผ่านเวทมนตร์นี้โดยไม่ต้องเขียนเชลล์สคริปต์ของฉันหรือไม่
10 linux  grep  find  recursive 

3
ฉันจะรับรายการและลบออกจากไฟล์ได้อย่างไร
ฉันมีรายชื่อโดเมนจำนวนมากที่ฉันต้องลบออกจาก / etc / remotedomains พวกมันอาจจะไม่เรียงตามลำดับใด ๆ ในไฟล์ แต่ละโดเมนอยู่บนบรรทัดเดียว ฉันจะวนซ้ำในรายการและค้นหาบรรทัดนั้นในโดเมนระยะไกลและลบออกได้อย่างไร

5
ทำไมคำสั่ง“ find | grep 'filename'” ช้ากว่า“ find 'filename'” มากไหม?
ฉันลองทั้งคำสั่งและคำสั่ง find | grep 'filename' ช้ากว่าfind 'filename' คำสั่งแบบธรรมดาหลาย ๆ ครั้ง อะไรจะเป็นคำอธิบายที่เหมาะสมสำหรับพฤติกรรมนี้

5
grep เอาต์พุตสี: ไม่ใช่ GREP_OPTIONS ไม่ใช่นามแฝง
grepฉันต้องการส่งออกสี .... แต่ กลยุทธ์ที่ 1: GREP_OPTIONS แต่นี่เลิกใช้แล้ว ดูhttp://www.gnu.org/software/grep/manual/html_node/Environment-Variables.html Stragegy 2: GREP_COLORS ดูเหมือนโซลูชันตั้งแต่แรกเห็น แต่สิ่งนี้แตกต่าง กลยุทธ์ที่ 3: นามแฝง สิ่งนี้ไม่ได้ผลfind ... | xargs grepเนื่องจาก xargs ไม่ได้ประเมินชื่อแทน กลยุทธ์ที่ 4: เขียนสคริปต์ตัวคลุมแบบเรียบง่าย ไม่ฉันคิดว่านี่สกปรกเกินไปและสร้างปัญหามากกว่าที่จะแก้ไขได้ กลยุทธ์ที่ 5: แก้ไขซอร์สโค้ด กลยุทธ์ที่ 6: ติดต่อผู้พัฒนา grep, ขอการเปลี่ยน GREP_OPTIONS กลยุทธ์ NICE-and-EASY: ... นี่หายไป ฉันไม่มีเงื่อนงำ วิธีแก้ปัญหานี้ ขอบคุณที่พยายามช่วย! ... แต่ฉันไม่สามารถให้รางวัลได้ โทรหาฉันหยาบคาย arogant ดูถูกเหยียดหยาม .... ฉันเห็นเฉพาะการแก้ไข …
10 shell  grep  colors 

1
จะใช้ grep เพื่อกรองบรรทัดที่เริ่มต้นด้วยชุดคำหลักใด ๆ ได้อย่างไร
ฉันมีไฟล์ขนาดใหญ่ (ฐานข้อมูลสารเคมี) และฉันต้องการที่จะแสดงระเบียนส่วนหัวเท่านั้นซึ่งจะถูกกำหนดเป็นสายที่ไม่ได้เริ่มต้นด้วย: ATOM, CONNECT, HETATM, หรือTER ENDฉันควรจะใช้grepเพื่อทำสิ่งนี้ นี่คือตัวอย่างของไฟล์ (ทั้งไฟล์อยู่ที่นี่ ): HEADER TRANSFERASE 15-OCT-12 4HKD TITLE CRYSTAL STRUCTURE OF HUMAN MST2 SARAH DOMAIN COMPND MOL_ID: 1; COMPND 2 MOLECULE: SERINE/THREONINE-PROTEIN KINASE 3; COMPND 3 CHAIN: A, B, C, D; COMPND 4 FRAGMENT: SARAH DOMAIN, UNP RESIDUES 436-484; COMPND 5 SYNONYM: …
10 grep 

3
ใช้ regex ที่เข้ากันได้กับ Perl กับ GNU grep -P
ฉันใช้ regex นี้(?<=\[')[^,]*กับไฟล์ที่มีบรรทัดต่อไปนี้disk = ['OVS/sdasd/asdasd/asdasd/something.img, w'] ฉันต้องการที่จะกลับมา OVS/sdasd/asdasd/asdasd/something.img ฉันจะใช้grepเพื่อทำให้มันทำงานได้อย่างไร ฉันได้ลองแล้วgrep -P "(?<=\[')[^,]*"แต่มันกลับมาทั้งบรรทัด

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