วิธีการ grep หรือค้นหาสิ่งที่ฉันกำลังมองหา?


0

ฉันจะค้นหาคำที่เรียกว่า "Onderh" ได้อย่างไร การค้นหาขั้นสูงฉันต้องการทำเช่น: เริ่มต้นบรรทัดด้วย "Onderh" หรือบรรทัดประกอบด้วย "Onderh"

หมายเหตุ: ไดเรกทอรีข้อมูลสำรองในพื้นที่มี MySQL snapshot "database.sql (ขนาดไฟล์: 81902272) ทุกวัน" ข้างในไฟล์นั้นฉันต้องใช้การค้นหา

[me@www win]$ ls
2011-03-01  2011-03-04  2011-03-07  2011-03-10  2011-03-13  2011-03-16  2011-03-19  2011-03-22  2011-03-25  2011-03-28  2011-03-31  2011-04-03  2011-04-06
2011-03-02  2011-03-05  2011-03-08  2011-03-11  2011-03-14  2011-03-17  2011-03-20  2011-03-23  2011-03-26  2011-03-29  2011-04-01  2011-04-04  2011-04-07
2011-03-03  2011-03-06  2011-03-09  2011-03-12  2011-03-15  2011-03-18  2011-03-21  2011-03-24  2011-03-27  2011-03-30  2011-04-02  2011-04-05  2011-04-08

[me@www 2011-04-08]$ ll
total 80092
-rw-r--r--  1 root root 81902272 Apr  8 01:00 database.sql
drwxr-xr-x 99 root root    12288 Apr  8 01:00 etc
drwxr-xr-x  4 root root     4096 Apr  8 01:00 home
drwxr-xr-x 10 root root     4096 Apr  8 01:00 html
drwxr-xr-x 14 root root     4096 Apr  8 01:00 postfixadmin-2.3

คำตอบ:


1

หากคุณต้องการตรวจสอบไดเรกทอรีทั้งหมดลอง:

[me@www win]$ grep -n ^Onderh */database.sql

เพื่อค้นหาบรรทัด (แฟล็ก -n แสดงหมายเลขบรรทัด) เริ่มต้นด้วย Onderh ^เป็นตัวละครพิเศษที่จะยึดการแข่งขันจะเริ่มต้นของเส้น - กำจัดมันถ้าคุณต้องการที่จะหามันได้ทุกที่ในบรรทัด

Ackอาจเป็นสิ่งที่ควรพิจารณาหากคุณมีข้อกำหนดที่ซับซ้อนกว่านี้ ตัวอย่างเช่นหากไฟล์ sql ที่คุณสนใจไม่ได้รับการจัดระเบียบอย่างดี ack จะสามารถค้นหาได้เฉพาะไฟล์. sql ในโครงสร้างไดเรกทอรีทั้งหมด


"Ack" ดีมากมันไฮไลต์แม้ในขณะที่การค้นหาและการจับคู่พบ ไม่ทราบว่ามันฉลาด ขอบคุณ
YumYumYum

1

หากไฟล์เป็นไฟล์ข้อความคุณสามารถใช้ grep ด้วยการตั้งค่าสถานะ regex

grep -R -E "^Onderh" *
grep -R "Onderh" *

อันดับแรกจะค้นหาบรรทัดที่ขึ้นต้นด้วย onderh อันดับที่สองสำหรับทุกบรรทัดที่มี


-E สำหรับการแสดงออกปกติขยาย Grep ที่ไม่มี -E เข้าใจ ^ เพราะนั่นเป็นส่วนหนึ่งของนิพจน์ทั่วไปธรรมดา ฉันส่วนใหญ่ใช้ egrep (grep -E) หากฉันต้องการทางเลือก (เช่นgrep -E "Ond(er|yz)h")
RedGrittyBrick
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.