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

grep เป็นยูทิลิตี้ค้นหาข้อความบรรทัดคำสั่ง แต่เดิมเขียนสำหรับ Unix มันใช้การแสดงออกปกติเพื่อจับคู่ข้อความและมักจะใช้เป็นตัวกรองในท่อ ใช้แท็กนี้เฉพาะเมื่อคำถามของคุณเกี่ยวข้องกับการเขียนโปรแกรมโดยใช้ grep หรือ grep-based API คำถามที่เกี่ยวข้องกับการใช้หรือการแก้ไขปัญหาตัวเลือกบรรทัดคำสั่ง grep นั้นอยู่นอกหัวข้อ

19
Colorized grep - ดูไฟล์ทั้งหมดด้วยการจับคู่ที่ไฮไลต์
ฉันพบgrep's--color=alwaysธงที่จะเป็นประโยชน์อย่างมาก อย่างไรก็ตาม grep พิมพ์เฉพาะบรรทัดที่มีการจับคู่เท่านั้น (ยกเว้นกรณีที่คุณขอบรรทัดบริบท) เนื่องจากแต่ละบรรทัดที่พิมพ์มีการจับคู่การไฮไลต์ไม่ได้เพิ่มความสามารถให้มากที่สุดเท่าที่จะทำได้ ฉันต้องการcatไฟล์จริงๆและดูไฟล์ทั้งหมดที่มีการจับคู่รูปแบบที่เน้นไว้ มีวิธีที่ฉันสามารถบอก grep ให้พิมพ์ทุกบรรทัดที่อ่านไม่ว่าจะมีการแข่งขันหรือไม่? ฉันรู้ว่าฉันสามารถเขียนสคริปต์เพื่อรัน grep ในทุกบรรทัดของไฟล์ แต่ฉันอยากรู้ว่าสิ่งนี้เป็นไปได้ด้วยมาตรฐานgrepหรือไม่
509 bash  shell  colors  grep 


22
grep a tab ใน UNIX
ฉันจะgrepแท็บ (\ t) ในไฟล์บนแพลตฟอร์ม Unix ได้อย่างไร
417 unix  grep 

7
การจับภาพกลุ่มจาก Grep RegEx
ฉันมีสคริปต์เล็ก ๆ นี้ในsh(Mac OSX 10.6) เพื่อดูไฟล์ต่างๆ Google หยุดให้ความช่วยเหลือในตอนนี้: files="*.jpg" for f in $files do echo $f | grep -oEi '[0-9]+_([a-z]+)_[0-9a-z]*' name=$? echo $name done จนถึงตอนนี้ (เห็นได้ชัดว่าคุณปรมาจารย์เปลือกหอย) $nameถือเพียง 0, 1 หรือ 2 ขึ้นอยู่กับว่าgrepพบว่าชื่อไฟล์ตรงกับเรื่องที่ให้ สิ่งที่ผมต้องการคือการจับสิ่งที่อยู่ภายใน parens([a-z]+)และร้านค้าที่ให้กับตัวแปร ฉันต้องการที่จะใช้grepเพียง แต่ถ้าเป็นไปได้ ถ้าไม่โปรดอย่าใช้ Python หรือ Perl เป็นต้นsedหรืออะไรทำนองนี้ - ฉันใหม่กับเชลล์และต้องการโจมตีมันจากมุม * * * * คนเจ้าระเบียบ นอกจากนี้ในฐานะที่เป็นbonu สุดยอดฉันอยากรู้อยากเห็นว่าฉันสามารถเชื่อมสตริงในเปลือก? …
380 bash  shell  grep 

8
ฉันจะจัดรูปแบบเอาต์พุต grep ของฉันเพื่อแสดงหมายเลขบรรทัดที่ท้ายบรรทัดและจำนวน Hit ได้อย่างไร
ฉันกำลังใช้ grep เพื่อจับคู่สตริงในไฟล์ นี่คือไฟล์ตัวอย่าง: example one, example two null, example three, example four null, grep -i null myfile.txt ผลตอบแทน example two null, example four null, ฉันจะคืนบรรทัดที่ตรงกันพร้อมกับหมายเลขบรรทัดของพวกเขาเช่นนี้ได้อย่างไร: example two null, - Line number : 2 example four null, - Line number : 4 Total null count : 2 ฉันรู้ - c …
378 linux  bash  unix  grep 

6
รับหมายเลขบรรทัดขณะใช้ grep
ฉันกำลังใช้ grep แบบเรียกซ้ำเพื่อค้นหาไฟล์สำหรับสตริงและไฟล์ที่ตรงกันทั้งหมดและบรรทัดที่มีสตริงนั้นจะถูกพิมพ์บนเทอร์มินัล แต่เป็นไปได้ไหมที่จะได้รับหมายเลขบรรทัดของบรรทัดเหล่านั้นด้วย? เช่นในปัจจุบันสิ่งที่ผมได้รับคือ/var/www/file.php: $options = "this.target"แต่สิ่งที่ฉันพยายามที่จะได้รับเป็น/var/www/file.php: 1142 $options = "this.target";อย่างดีที่1142จะเป็นจำนวนบรรทัดที่มีสตริงที่ ไวยากรณ์ที่ฉันใช้เพื่อ grep ซ้ำคือ sudo grep -r 'pattern' '/var/www/file.php' คำถามอีกข้อคือเราจะได้ผลลัพธ์ที่ไม่เท่ากับรูปแบบได้อย่างไร ชอบไฟล์ทั้งหมด แต่ไม่ใช่ไฟล์ที่มีสตริงที่แน่นอนใช่ไหม
360 grep  line 

11
ฉันจะ grep สำหรับอักขระที่ไม่ใช่ ASCII ทั้งหมดได้อย่างไร
ฉันมีไฟล์ XML ที่มีขนาดใหญ่มากและฉันพยายามค้นหาบรรทัดที่มีอักขระที่ไม่ใช่ ASCII ฉันได้ลองทำสิ่งต่อไปนี้แล้ว: grep -e "[\x{00FF}-\x{FFFF}]" file.xml แต่สิ่งนี้จะคืนค่าทุกบรรทัดในไฟล์โดยไม่คำนึงว่าบรรทัดนั้นมีอักขระในช่วงที่ระบุหรือไม่ ฉันมีไวยากรณ์ผิดหรือฉันทำอย่างอื่นผิดปกติหรือไม่? ฉันยังลอง: egrep "[\x{00FF}-\x{FFFF}]" file.xml (ด้วยเครื่องหมายคำพูดเดี่ยวและคู่ล้อมรอบรูปแบบ)
359 regex  unix  unicode  grep 

10
ฉันจะ grep สำหรับสตริงที่ขึ้นต้นด้วยขีดกลาง / ขีดคั่นได้อย่างไร
ฉันต้องการ grep สำหรับสตริงที่ขึ้นต้นด้วยเครื่องหมายขีดคั่น / ยัติภังค์เช่น-Xในไฟล์ แต่มันทำให้สับสนว่านี่เป็นอาร์กิวเมนต์บรรทัดคำสั่ง ฉันพยายามแล้ว: grep "-X" grep \-X grep '-X'
347 unix  grep  escaping 

5
grep เฉพาะนัดแรกและหยุด
ฉันค้นหาไดเรกทอรีซ้ำโดยใช้ grep โดยมีอาร์กิวเมนต์ต่อไปนี้โดยหวังว่าจะคืนค่าการจับคู่แรกเท่านั้น น่าเสียดายที่มันคืนค่ามากกว่าหนึ่ง - ในความเป็นจริงสองในครั้งสุดท้ายที่ฉันดู ดูเหมือนว่าฉันมีข้อโต้แย้งมากเกินไปโดยเฉพาะอย่างยิ่งไม่ได้ผลลัพธ์ที่ต้องการ : - / # grep -o -a -m 1 -h -r "Pulsanti Operietur" /path/to/directory ผลตอบแทน: Pulsanti Operietur Pulsanti Operietur บางที grep ไม่ใช่วิธีที่ดีที่สุดในการทำสิ่งนี้? คุณบอกฉันขอบคุณมาก
329 grep 

24
ลบสาขา git ท้องถิ่นทั้งหมด
ฉันทำตามกระบวนการพัฒนาที่ฉันสร้างสาขาท้องถิ่นใหม่สำหรับคุณสมบัติใหม่หรือการ์ดเรื่องราว เมื่อเสร็จแล้วฉันจะรวมสาขาเป็นหลักแล้วกด สิ่งที่มีแนวโน้มที่จะเกิดขึ้นเมื่อเวลาผ่านไปเนื่องจากการผสมผสานของความเกียจคร้านหรือความหลงลืมคือฉันท้ายที่สุดมีรายการสาขาท้องถิ่นจำนวนมากซึ่งบางส่วน (เช่นแหลม) อาจไม่ถูกรวมเข้าด้วยกัน ฉันรู้วิธีการแสดงรายการสาขาในพื้นที่ทั้งหมดของฉันและฉันรู้วิธีลบสาขาเดียว แต่ฉันสงสัยว่ามีคำสั่ง git ที่ทำให้ฉันสามารถลบสาขาท้องถิ่นทั้งหมดของฉันได้หรือไม่ ด้านล่างเป็นผลลัพธ์ของgit branch --mergedคำสั่ง user@machine:~/projects/application[master]$ git branch --merged STORY-123-Short-Description STORY-456-Another-Description STORY-789-Blah-Blah * master ความพยายามในการลบสาขาที่มีรายชื่อgrep -v \*(ตามคำตอบด้านล่าง) ส่งผลให้เกิดข้อผิดพลาด: error: branch 'STORY-123-Short-Description' not found. error: branch 'STORY-456-Another-Description' not found. error: branch 'STORY-789-Blah-Blah' not found. ฉันใช้: git 1.7.4.1 ubuntu 10.04 ทุบตี GNU, รุ่น 4.1.5 (1) …

28
เครื่องมือ grep ที่ดีสำหรับ Windows คืออะไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ คำแนะนำเกี่ยวกับเครื่องมือgrepสำหรับ Windows? แนวคิดที่ใช้ประโยชน์จากระบบปฏิบัติการ 64 บิต แน่นอนฉันรู้CygwinและพบPowerGREPด้วย แต่ฉันสงสัยว่ามีอัญมณีที่ซ่อนอยู่หรือไม่
289 windows  grep 

15
นับจำนวนสตริงทั้งหมดในไฟล์จำนวนมากที่มี grep
ฉันมีไฟล์บันทึกมากมาย ฉันต้องการค้นหาว่าสตริงมีกี่ครั้งในไฟล์ทั้งหมด grep -c string * ผลตอบแทน ... file1:1 file2:0 file3:0 ... การใช้ไพพ์ฉันสามารถได้รับไฟล์ที่มีเหตุการณ์อย่างน้อยหนึ่งอย่างเท่านั้น: grep -c string * | grep -v :0 ... file4:5 file5:1 file6:2 ... ฉันจะได้รับการนับรวมเท่านั้นได้อย่างไร (ถ้ามันกลับfile4:5, file5:1, file6:2มาฉันต้องการกลับ 8)
289 grep 


23
ฟังก์ชั่น PHP ใช้ประโยชน์ได้
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันพยายามสร้างรายการฟังก์ชันที่สามารถใช้สำหรับการใช้รหัสโดยอำเภอใจ วัตถุประสงค์ไม่ใช่เพื่อแสดงรายการฟังก์ชันที่ควรขึ้นบัญชีดำหรือไม่อนุญาต แต่ฉันต้องการgrepรายการคำหลักที่สามารถติดธงแดงได้เมื่อทำการค้นหาเซิร์ฟเวอร์ที่ถูกบุกรุกเพื่อหาประตูหลัง แนวคิดคือถ้าคุณต้องการสร้างสคริปต์ PHP ที่เป็นอันตรายแบบอเนกประสงค์ - เช่นสคริปต์ "web shell" เช่น c99 หรือ r57 - คุณจะต้องใช้ฟังก์ชั่นชุดเล็ก ๆ อย่างน้อยหนึ่งชุดขึ้นไป ที่ใดที่หนึ่งในไฟล์เพื่ออนุญาตให้ผู้ใช้เรียกใช้รหัสโดยอำเภอใจ การค้นหาฟังก์ชั่นเหล่านั้นจะช่วยให้คุณแคบลงอย่างรวดเร็วยิ่งขึ้นกองหญ้าของไฟล์ PHP นับหมื่นนับพันเป็นชุดสคริปต์ขนาดเล็กที่ต้องการการตรวจสอบอย่างใกล้ชิดยิ่งขึ้น ตัวอย่างเช่นสิ่งใด ๆ ต่อไปนี้จะถือว่าเป็นอันตราย (หรือการเข้ารหัสแย่): <? eval($_GET['cmd']); ?> <? system($_GET['cmd']); ?> <? preg_replace('/.*/e',$_POST['code']); ?> และอื่น ๆ การค้นหาผ่านเว็บไซต์ที่ถูกบุกรุกในวันอื่น ๆ ผมไม่ได้สังเกตเห็นชิ้นส่วนของโค้ดที่เป็นอันตรายเพราะผมไม่ทราบpreg_replaceอาจจะทำอันตรายจากการใช้ของ/eธง ( ซึ่งอย่างจริงจังทำไมคือว่าแม้มี ?) มีคนอื่นที่ฉันพลาดไปไหม? นี่คือรายการของฉัน: ดำเนินการเชลล์ …
277 php  security  grep 

11
วิธีการตรวจสอบว่าไฟล์มีสตริงที่ระบุโดยใช้ Bash
ฉันต้องการตรวจสอบว่าไฟล์มีสตริงเฉพาะหรือไม่ในทุบตี ฉันใช้สคริปต์นี้ แต่มันไม่ทำงาน: if [[ 'grep 'SomeString' $File' ]];then # Some Actions fi มีอะไรผิดปกติในรหัสของฉัน
266 bash  shell  grep 

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