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

grep เป็นเครื่องมือบรรทัดคำสั่งสำหรับค้นหารูปแบบข้อความในไฟล์

2
ฉันจะแสดงชื่อไฟล์หลังจากค้นหาคำหลักได้อย่างไร
ปัจจุบันฉันมีไฟล์ข้อมูล n ไฟล์ในไดเรกทอรีซึ่งแต่ละไฟล์มีข้อมูลยาวที่สุด 1 บรรทัด โครงสร้างไดเรกทอรีของฉันคือ director/ data1.json data2.json data3.json ฉันรู้ว่าอย่างน้อยหนึ่งไฟล์เหล่านั้นมีคำหลักที่ฉันกำลังมองหา แต่เนื่องจากข้อมูลหนึ่งบรรทัดยาวเกินไปจึงครอบคลุมเทอร์มินัลทั้งหมดของฉัน ฉันจะได้รับชื่อไฟล์หลังจากดำเนินการ grep คำหลักได้อย่างไร คำสั่ง grep ที่ฉันใช้คือ: grep keyword *.json
15 grep 

1
Ack ค้นหาสตริงตามตัวอักษร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับข้อบกพร่องของเซิร์ฟเวอร์ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันเบื่อที่จะต้องหลบหนีสิ่งต่าง ๆ เมื่อฉันต้องการค้นหาส่วนหนึ่งของแท็ก html ฉันจะค้นหาสิ่งที่ฉันพิมพ์ได้โดยไม่ต้องหลบหนีจากสิ่งต่างๆได้อย่างไร เช่น ack-grep 'console.log(foo' ฉันเข้าใจ: Unmatched ( in regex; marked by <-- HERE in m/console.log( <-- HERE par/
15 grep  regex 

7
ไม่ต้องการทั้งบรรทัดเพียงแค่การจับคู่จากนิพจน์ทั่วไป
ฉันเพียงแค่ต้องได้รับการแข่งขันจากการแสดงออกปกติ: $ cat myfile.txt | SOMETHING_HERE "/(\w).+/" ผลลัพธ์จะต้องเป็นสิ่งที่ตรงกันภายในวงเล็บ อย่าคิดว่าฉันสามารถใช้grep ได้เพราะมันตรงกับทั้งบรรทัด โปรดแจ้งให้เราทราบวิธีการทำเช่นนี้
15 bash  shell  grep  regex 

5
การทำ grepping ผ่านไฟล์บันทึก. gz
มีเปลือกท่อเวทย์มนตร์ซึ่งจะช่วยให้สามารถ grep ผ่านกลุ่มของไฟล์บันทึก. gz ได้โดยไม่จำเป็นต้องแตกไฟล์เหล่านั้นอยู่ที่ไหน? ไฟล์. gz เป็นบันทึก Apache ซึ่งเป็นผลมาจากการหมุนบันทึก ฉันต้องการตรวจสอบอย่างรวดเร็วว่ามีการเข้าถึง URIs บางรายการในอดีตอย่างไร

7
วิธีค้นหาไฟล์ใน FreeBSD
ฉันพยายามค้นหาสำเนาทั้งหมดของexample.filenameบนเซิร์ฟเวอร์ FreeBSD ของฉัน วิธีที่ดีที่สุด / ง่ายที่สุด / มีประสิทธิภาพมากที่สุดคืออะไร
14 linux  freebsd  files  grep  find 

3
grep ทำตัวต่างกันกับ Fedora กับ Ubuntu
ดังนั้นเมื่อฉันเรียกใช้สิ่งนี้ใน Fedora ฉันเห็นสิ่งนี้: $ ls hmm_data/indivA12_AATAAG/refs/par1/ 2R-orths.alleles 2R-ref.alleles $ ls hmm_data/indivA12_AATAAG/refs/par1/ | grep -F '-ref.alleles' 2R-ref.alleles แต่เมื่อฉันทำงานบน Ubuntu (ข้อมูลเดียวกัน) ฉันไม่ได้รับผลลัพธ์ใด ๆ จาก grep: $ ls hmm_data/indivA12_AATAAG/refs/par1/ 2R-orths.alleles 2R-ref.alleles $ ls hmm_data/indivA12_AATAAG/refs/par1/ | grep -F '-ref.alleles' ความคิดใด ๆ ที่อาจเกิดขึ้น? ฉันจะหาบางสิ่งที่จะทำงานเหมือนกันทั้งสองระบบได้อย่างไร
13 ubuntu  bash  fedora  grep 

6
บรรทัด grep หลังจากการแข่งขันจนถึงจุดสิ้นสุด
ฉันมีผลลัพธ์ต่อไปนี้จากgit statusฉันจะทำgrepทุกสิ่งหลังจากUntracked files: [alexus@wcmisdlin02 Test]$ git status # On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: app/.gitignore # new file: app/app.iml # new file: app/build.gradle # new file: app/proguard-rules.pro # new file: app/src/androidTest/java/org/alexus/test/ApplicationTest.java …

5
แยกช่วงเวลาอย่างรวดเร็วจาก syslog logfile?
ฉันมีไฟล์บันทึกการทำงานในรูปแบบ syslog มาตรฐาน ดูเหมือนว่านี้ยกเว้นหลายร้อยบรรทัดต่อวินาที: Jan 11 07:48:46 blahblahblah... Jan 11 07:49:00 blahblahblah... Jan 11 07:50:13 blahblahblah... Jan 11 07:51:22 blahblahblah... Jan 11 07:58:04 blahblahblah... มันไม่หมุนในเวลาเที่ยงคืน แต่จะไม่มีวันเกินสองวัน ฉันมักจะต้องแยกเวลาออกจากไฟล์นี้ ฉันต้องการเขียนสคริปต์วัตถุประสงค์ทั่วไปสำหรับสิ่งนี้ที่ฉันสามารถเรียกเช่น: $ timegrep 22:30-02:00 /logs/something.log ... และดึงเส้นจากเวลา 22:30 น. ขึ้นไปข้ามขอบเขตเที่ยงคืนจนถึงตี 2 ในวันถัดไป มีข้อแม้อยู่เล็กน้อย: ฉันไม่ต้องการที่จะต้องพิมพ์วันที่ลงบนบรรทัดคำสั่งอีกต่อไป โปรแกรมควรฉลาดพอที่จะเข้าใจได้ รูปแบบวันที่บันทึกไม่รวมปีดังนั้นจึงควรเดาตามปีปัจจุบัน แต่ก็ทำสิ่งที่ถูกต้องในวันปีใหม่ ฉันต้องการให้มันเร็ว - ควรใช้ความจริงที่ว่าบรรทัดนั้นมีไว้เพื่อค้นหาในไฟล์และใช้การค้นหาแบบไบนารี ก่อนที่ฉันจะใช้เวลาเขียนสิ่งนี้มันมีอยู่แล้วหรือเปล่า?
12 linux  log-files  grep 

3
ฉันจะส่ง / var / mail / root อีกครั้งได้อย่างไร
ด้วยการกำหนดค่าผิดพลาดบางครั้งฉันมีอีเมลจำนวนมากใน / var / mail / root และ / var / mail / www-data ฉันจะ "วนซ้ำ" เหนือไฟล์เหล่านี้และส่งจดหมายแต่ละฉบับในเวลาอื่นได้อย่างไร
12 sendmail  email  grep  logging  exim 

8
ฉันจะรับเกตเวย์เริ่มต้นใน LINUX ให้ปลายทางได้อย่างไร
ฉันกำลังพยายามหาเกตเวย์เริ่มต้นโดยใช้ปลายทาง 0.0.0.0 ฉันใช้คำสั่งนี้: netstat -rn | grep 0.0.0.0 และจะส่งคืนรายการนี้: Destination - Gateway - Genmask - Flags - MSS - Window - irtt - Iface 10.9.9.17 - 0.0.0.0 - 255.255.255.255 - UH - 0 0 0 - tun0 133.88.0.0 - 0.0.0.0 - 255.255.0.0 - U - 0 0 0 - eth0 …
11 gateway  grep 

6
แถบความคืบหน้าของ Grep โดยใช้ pv (ไปป์)
ฉันมีไดเรคทอรีขนาดใหญ่บนคอมพิวเตอร์ของฉันและฉันต้องการค้นหาไฟล์ทับทิมทุกอันในสตริง ฉันทำได้เช่นนี้grep -R "string" *.rbแต่ใช้เวลานานมากและฉันต้องการใช้ pv (ไปป์) เพื่อแสดงแถบความคืบหน้าเพื่อให้สามารถติดตามgrepความคืบหน้าได้ แต่ฉันไม่รู้จริง ๆ ว่าฉันจะเขียนคำสั่งนี้ได้อย่างไรเพราะยังมีบางสิ่งที่ฉันไม่เข้าใจเกี่ยวกับคำสั่งนี้ มีใครมีความคิดบ้างไหม?
11 grep  pv 

2
grepping สำหรับช่วง CIDR
บางครั้งฉันต้องการ grep CIDR ออกจากไฟล์บันทึก Apache ของฉัน สิ่งนี้เป็นเรื่องง่ายสำหรับช่วงที่อยู่ในขอบเขตธรรมชาติ (/ 8, / 16 และ / 24) แต่ไม่ใช่เรื่องง่ายสำหรับช่วงอื่นเช่น / 17 และ / 25 ตัวอย่าง: # 192.168.0.0/16: (easy) grep " 192\.168\." access_log # 192.168.128.0/17: (more thought required) grep -E " 192\.168\.(12[89]|1[3-9][0-9]|2[0-5][0-9])\." access_log # 192.168.0.0/17: (more thought required) grep -E " 192\.168\.([0-9]|[0-9][0-9]|1[01][0-9]|12[0-7])\." access_log # 192.168.128.0/18: …
10 ip  regex  grep  cidr 

5
รวมคำสั่ง unix หลายคำสั่งไว้ในที่เดียว
ฉันต้องการค้นหาบันทึกอีเมลของเราเพื่อหาที่อยู่อีเมลที่เฉพาะเจาะจง เราเก็บไฟล์ปัจจุบันชื่อmaillogรวมถึงไฟล์. bz2 มูลค่าหนึ่งสัปดาห์ในโฟลเดอร์เดียวกัน ขณะนี้ฉันใช้คำสั่งต่อไปนี้เพื่อค้นหาไฟล์: grep person@domain.com maillog bzgrep person@domain.com *.bz2 มีวิธีรวมgrepและbzgrepคำสั่งเป็นผลลัพธ์เดียวหรือไม่ ด้วยวิธีนี้ฉันสามารถไปป์ไลน์ผลลัพธ์ที่รวมเข้ากับอีเมลหรือไฟล์เดียว
9 linux  unix  bash  grep 

4
ค้นหาตัวอักษร“> \” โดยใช้ ack-grep
ฉันกำลังมองหาบรรทัดที่มีตัวอักษรมากกว่า (a ">") ตามด้วยช่องว่างตามด้วยอักขระเครื่องหมายทับขวา (a "\") เช่นบรรทัดที่มี:> \ ฉันคิดว่าการหลบหนีจะยอมให้สิ่งนี้และสำหรับสิ่งที่ยิ่งใหญ่กว่านั้น: $ ack-grep "\>" ส่งคืนบรรทัดที่มี ">" อยู่ในรายการ แต่เมื่อฉันพยายามหนีแบ็กสแลชเช่นกันฉันจะได้รับ: $ ack-grep "\> \\" ack-grep: regex ไม่ถูกต้อง '\> \': Trailing \ in regex m / \> /
9 grep  regex  escaping 

3
tail -f จากนั้นออกจากการจับคู่สตริง
ฉันกำลังพยายามกำหนดค่าสคริปต์เริ่มต้นซึ่งจะเริ่มต้น Tomcat ตรวจสอบ catalina.out สำหรับสตริง "Server startup" แล้วเรียกใช้กระบวนการอื่น ฉันได้ลองใช้ชุดต่าง ๆ ของ tail -f กับ grep และ awk แต่ยังไม่ได้ทำงานอะไรเลย ปัญหาหลักที่ฉันดูเหมือนจะบังคับให้หางตายหลังจาก grep หรือ awk จับคู่กับสตริง ฉันทำให้การทดสอบต่อไปนี้ง่ายขึ้น test.sh is listed below: #!/bin/sh rm -f child.out ./child.sh > child.out & tail -f child.out | grep -q B child.sh is listed below: #!/bin/sh echo A …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.