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

grep เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งที่ใช้สำหรับค้นหาข้อความ

11
วิธีใช้คำสั่ง“ grep” เพื่อค้นหาข้อความรวมถึงไดเรกทอรีย่อย
ฉันต้องการค้นหาไฟล์ทั้งหมดที่มีสตริงข้อความที่เฉพาะเจาะจง grepคำสั่งทำงาน แต่ผมไม่ทราบว่าวิธีการที่จะใช้สำหรับทุกไดเรกทอรี (ฉันสามารถทำเพื่อไดเรกทอรีปัจจุบันของฉัน) ฉันลองอ่านman grepแต่ก็ไม่ได้ช่วยอะไรเลย
373 command-line  grep 

4
วิธี grep สำหรับแท็บโดยไม่ต้องใช้แท็บตัวอักษรและทำไม \ t ไม่ทำงาน
เมื่อฉันค้นหาแท็บในไฟล์ที่มี (จ) grep ฉันจะใช้แท็บครอก ( ^v + <tab>) ฉันไม่สามารถใช้\tแทนแท็บในนิพจน์ทั่วไปได้ ด้วยเช่น sed การแสดงออกนี้ทำงานได้ดีมาก ดังนั้นจึงมีความเป็นไปได้ที่จะใช้การทดแทน<tab>ที่ไม่ได้มาจากที่\tใด

4
ฉันจะค้นหาชื่อไดเรกทอรีซ้ำด้วยสตริงซ้ำโดยที่สตริงเป็นเพียงส่วนหนึ่งของชื่อไดเรกทอรีได้อย่างไร
ฉันจะค้นหาชื่อไดเรกทอรีซ้ำด้วยสตริงเฉพาะโดยที่สตริงเป็นส่วนหนึ่งของชื่อไดเรกทอรีได้อย่างไร ตัวอย่างเช่น: ชื่อไดเรกทอรีคือ "8.0.3-99966_en" แต่ฉันต้องการค้นหาไดเรกทอรีซ้ำด้วยสตริง "99966"
73 grep 

4
ฉันจะดึงเฉพาะตัวเลขใน grep ได้อย่างไร
ฉันมีไฟล์เช่นนี้: other lines . . . blah blah blah (:34) ฉันต้องการค้นหาตัวเลขในไฟล์ด้านบน ฉันมากับ: grep [0-9] filename แต่นั่นเป็นการพิมพ์ทั้งหมด: blah blah blah (:34) 34แต่ฉันต้องการเพียง มีวิธีการทำเช่นนั้น?

5
grep ไม่สนใจคำเตือน
ฉันพยายามค้นหาไดเรกทอรีการติดตั้งของแพ็คเกจเฉพาะ ฉันมีคำหลักบางคำที่ใช้ซึ่งฉันพยายามค้นหาไฟล์ใดไฟล์หนึ่งโดยเฉพาะ ระหว่าง grep ฉันต้องการรวมไฟล์cpp หรือ hเท่านั้น ฉันไม่ต้องการ grep ที่จะแสดงคำเตือนเช่นอนุญาตปฏิเสธหรือ ไม่พบไดเรกทอรี ฉันแค่อยากให้มันแสดงไฟล์ที่ตรงกัน กรุณาแนะนำฉันจะทำอย่างไร ตอนนี้ฉันกำลังใช้ grep "My term" -ir --exclude-dir="\.svn" --include=*.{cpp,h} ./
50 search  grep 

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

2
[t] นิพจน์วงเล็บปีกกานี้ใน grep ทำงานอย่างไร
ฉันเห็นหนึ่งซับนี้เมื่อเร็ว ๆ นี้: $ ps -ef | grep [f]irefox thorsen 16730 1 1 Jun19 ? 00:27:27 /usr/lib/firefox/firefox ... ดังนั้นดูเหมือนว่าจะส่งคืนรายการกระบวนการด้วย "firefox" ในข้อมูล แต่ไม่รวมกระบวนการ grep เองและดังนั้นจึงดูเหมือนว่าจะเทียบเท่ากับ: ps -ef |grep -v grep| grep firefox ฉันไม่เข้าใจว่ามันทำงานอย่างไร ฉันดูหน้า man บน grep และที่อื่น ๆ แล้ว แต่ไม่พบคำอธิบาย และเพิ่มความลึกลับถ้าฉันวิ่ง: $ ps -ef | grep firefox > data $ …

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

5
วิธีการใช้ grep ในไฟล์ทั้งหมดที่ไม่ใช่แบบเรียกซ้ำในไดเรกทอรี?
ฉันต้องการค้นหาสตริงข้อความในไฟล์ทั้งหมดในไดเรกทอรี (และไม่ใช่ไดเรกทอรีย่อยของมันฉันรู้ว่า-rตัวเลือกทำเช่นนั้น แต่นั่นไม่ใช่สิ่งที่ฉันต้องการ) วิ่ง grep "string" /path/to/dir ฉันควรจะทำสิ่งนี้ได้ฉันอ่าน แต่มันทำให้ฉันมีข้อผิดพลาด: grep: dir: เป็นไดเรกทอรี ต่อไปฉันลองใช้grepไฟล์หลาย ๆ ไฟล์ grep "string" .bashrc .bash_aliases ทำงานได้อย่างสมบูรณ์แบบ grep "string" .bash* ทำงานตามที่ตั้งใจไว้ด้วย grep "string" * ให้ฉันข้อผิดพลาด: grep: data: Is a directory grep: Desktop: Is a directory grep: Documents: Is a directory grep: Downloads: Is a directory ... พิมพ์เฉพาะข้อผิดพลาดฉันไม่ได้เส้นที่ตรงกัน …
34 grep 

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

1
ฉันจะดูผลลัพธ์ที่ถูกกรองด้วย grep ได้อย่างไร
ฉันต้องการดูการเปลี่ยนแปลงของผลลัพธ์ gsettings list-recursively|grep text-scal ซึ่งเป็น org.gnome.desktop.interface text-scaling-factor 1.0 com.canonical.Unity.Interface text-scale-factor 1.0 แต่ถ้าฉันลองดูด้วย watch gsettings list-recursively|grep text-scal ฉันไม่ได้รับเอาต์พุตเนื่องจากดูเหมือนว่าปัญหาจะเกิดขึ้น ฉันจะดูการเปลี่ยนแปลงได้อย่างไร

3
วิธี grep 2 หรือ 3 บรรทัดหนึ่งมีข้อความที่ฉันต้องการและอื่น ๆ ด้านล่างหรือไม่
นี่เป็นภาพรวมของบันทึกข้อผิดพลาด: 06:16:29,933 ERROR EmailRMManager$:45 - Exception In get Message com.rabbitmq.client.AlreadyClosedException: clean connection shutdown; reason: Attempt to use closed channel at com.rabbitmq.client.impl.AMQChannel.ensureIsOpen(AMQChannel.java:195) at com.rabbitmq.client.impl.AMQChannel.rpc(AMQChannel.java:222) at com.rabbitmq.client.impl.AMQChannel.rpc(AMQChannel.java:208) at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:139) at com.rabbitmq.client.impl.ChannelN.basicGet(ChannelN.java:645) ฉันทำคำสั่งต่อไปนี้: cat foo.log | grep ERROR เพื่อรับ OP เป็น: 06:16:29,933 ERROR EmailRMManager$:45 - Exception In get Message ฉันควรใช้คำสั่งอะไรเพื่อให้ได้ผลลัพธ์เป็น 06:16:29,933 ERROR EmailRMManager$:45 …

5
grep - ชื่อรายการไฟล์ที่พบคู่ที่ตรงกัน
ฉันมีไฟล์. html มากมายในไดเรกทอรี ฉันต้องการดูแต่ละไฟล์และจับคู่รูปแบบ (MD5) ทั้งหมดนี้เป็นเรื่องง่ายพอ ปัญหาคือฉันต้องรู้ว่าไฟล์อะไรที่ตรงกับที่พบใน cat *.html | grep 75447A831E943724DD2DE9959E72EE31 ส่งกลับเฉพาะเนื้อหาของหน้า HTML ที่พบการจับคู่ แต่ไม่ได้บอกไฟล์ที่พบในนั้นฉันจะได้ grep เพื่อแสดงชื่อไฟล์ที่พบการจับคู่ของฉันได้อย่างไร

6
GUI สำหรับการดูบันทึก (หางและ grep)
คุณสามารถแนะนำแอปพลิเคชัน GUI ที่มีความสามารถในการดูบันทึกที่มีประสิทธิภาพได้หรือไม่? โดยทั่วไปแล้วมันจะทำงานได้เหมือนtail -fใน GUI แต่เหนือสิ่งอื่นใดของคุณสมบัติต่อไปนี้จะมีประโยชน์มาก: กรองบางบรรทัดตามนิพจน์ (ปกติ) ระบายสีบางบรรทัดตามนิพจน์ (ปกติ) ค้นหาแบบโต้ตอบ การกำหนดค่าที่บันทึกได้นั้นใช้กับไฟล์ต่างๆได้อย่างง่ายดาย การแจ้งเตือนตามนิพจน์ปกติ เครื่องมือที่คล้ายกันใน Windows คือBareTailและรุ่นที่จ่าย - BareTailPro

2
grep“ +” โอเปอเรเตอร์ไม่ทำงาน
นี้ ls -l /var/log | awk '{print $9}' | grep "^[a-z]*\.log." ผลลัพธ์นี้: alternatives.log.1 alternatives.log.10.gz alternatives.log.2.gz alternatives.log.3.gz alternatives.log.4.gz alternatives.log.5.gz alternatives.log.6.gz alternatives.log.7.gz alternatives.log.8.gz alternatives.log.9.gz apport.log.1 apport.log.2.gz apport.log.3.gz แต่นี่: ls -l /var/log | awk '{print $9}' | grep "^[a-z]+\.log." ไม่แสดงผลใด ๆ ทำไม? ฉันเพิ่งเปลี่ยนไป* +มันไม่เหมือนกันเหรอ? ผู้ประกอบการ+ต้องการการแข่งขันอย่างน้อยหนึ่งรายการและ*ศูนย์หรือมากกว่านั้น
31 grep 

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