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

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

1
จะรวมอักขระช่องว่างด้วย grep ได้อย่างไร
ฉันมีไฟล์ชื่อตัวอย่าง $ cat example kali.pdf linux.pdf ubuntu.pdf example.pdf. this.pdf grep .pdf และเมื่อฉันใช้grepเพื่อให้ได้บรรทัดที่มีช่องว่างมาก่อน.pdfฉันไม่สามารถรับมันได้ grep *.pdf example ไม่มีอะไรส่งคืน (ฉันต้องการจะพูดว่า "grep ตรงกับศูนย์หรือเว้นวรรคก่อนหน้า.pdf" แต่ไม่มีผลลัพธ์) และถ้าฉันใช้: grep i*.pdf example kali.pdf linux.pdf ubuntu.pdf example.pdf. this.pdf grep .pdf ทุกบรรทัดกลับมาเพราะฉันกำลังพูดว่า "grep จับคู่ฉันiหนึ่งหรือศูนย์เท่าตกลง" และสุดท้าย: grep " *.pdf" example ไม่มีผลลัพธ์ส่งคืน สำหรับตัวอย่างนี้ฉันต้องการดู grep .pdf เป็นเอาท์พุท เกิดอะไรขึ้นกับความคิดของฉัน

5
ค้นหารูปแบบ / ข้อความซ้ำในชื่อไฟล์ที่ระบุของไดเรกทอรีซ้ำหรือไม่
ฉันมีไดเรกทอรี (เช่นabc/def/efg) กับหลายไดเรกทอรีย่อย (เช่น ,: abc/def/efg/(1..300)) ไดเรกทอรีย่อยทั้งหมดเหล่านี้มีไฟล์ทั่วไป (เช่นfile.txt) ฉันต้องการค้นหาสตริงในรายการนี้เท่านั้นfile.txtไม่รวมไฟล์อื่น ๆ ฉันจะทำสิ่งนี้ได้อย่างไร ฉันใช้ grep -arin "pattern" *แต่มันช้ามากถ้าเรามีไดเรกทอรีย่อยและไฟล์จำนวนมาก

2
วิธีใช้ grep สำหรับ 2 บรรทัดที่แตกต่างกัน
ฉันจะค้นหาสองวลีที่แตกต่างกันอย่างไรเมื่ออยู่บนสองบรรทัดที่แตกต่างกันโดยใช้grepคำสั่งเดียว? ตัวอย่างเช่น บรรทัดที่ 1: นี่คือความหวาน บรรทัดที่ 2: เลมอน ฉันใช้สิ่งนี้ แต่ไม่มีผลลัพธ์ grep "sweet.*lemon" file_type


5
คำสั่ง 'grep' ทำอะไร
ฉันต้องการเรียนรู้วิธีการใช้งานเพื่อให้ฉันสามารถเริ่มใช้เทอร์มินัลได้มากขึ้น

1
ค้นหาสตริงซ้ำในขณะที่อยู่ในไดเรกทอรีปัจจุบัน
ฉันต้องการค้นหาไฟล์ทั้งหมดซ้ำจากไดเรกทอรีที่ฉันอยู่ในสตริงเฉพาะ ฉันเหนื่อย grep -r -i my_string และฉันลองในโฟลเดอร์ทดสอบที่มีไฟล์เล็ก ๆ สองไฟล์ แต่ไม่พบสตริง นอกจากนี้ยังมีวิธีพิเศษในการกำหนด "บรรจุ" แทนที่จะจับคู่คำทั้งหมดหรือไม่
15 directory  grep 

2
วิธีการป้องกัน grep จากการพิมพ์สตริงเดียวกันหลาย ๆ ครั้ง?
หากฉัน grep ไฟล์ที่มีต่อไปนี้: These are words These are words These are words These are words ... สำหรับคำTheseนั้นมันจะพิมพ์สตริงThese are wordsสี่ครั้ง ฉันจะป้องกัน grep ไม่ให้พิมพ์สตริงที่เกิดซ้ำมากกว่าหนึ่งครั้งได้อย่างไร มิฉะนั้นฉันจะจัดการเอาต์พุตของ grep เพื่อลบบรรทัดที่ซ้ำกันได้อย่างไร


5
ความแตกต่างของไฟล์ขนาดใหญ่สองไฟล์
ฉันมี "test1.csv" และมันมี 200,400,600,800 100,300,500,700 50,25,125,310 และ test2.csv และประกอบด้วย 100,4,2,1,7 200,400,600,800 21,22,23,24,25 50,25,125,310 50,25,700,5 ตอนนี้ diff test2.csv test1.csv > result.csv แตกต่างจาก diff test1.csv test2.csv > result.csv ฉันไม่รู้ว่าคำสั่งใดถูกต้อง แต่ฉันต้องการอย่างอื่นทั้งสองคำสั่งด้านบนจะแสดงผลลัพธ์ออกมาเหมือนกัน 2 > 100,4,2,1,7 3 2,3c3,5 4 < 100,300,500,700 5 < 50,25,125,310 6 \ No newline at end of file 7 --- 8 …
14 grep  sed  awk  diff 

3
ใช้ grep เพื่อค้นหาข้อความด้วยเครื่องหมายคำพูดเดี่ยว?
ฉันใช้ gedit text editor พร้อม terminal terminal ใน Ubuntu 12.04 grepฉันพยายามที่จะค้นหาข้อความบางส่วนใช้ ฉันต้องการค้นหารหัสบรรทัดนี้ 'type' => 'select' ฉันเหนื่อย: grep -r '\'type\' => \'select\'' แต่grepไม่ได้ผลลัพธ์ใด ๆ ดังนั้นใครบางคนกรุณาบอกวิธีการค้นหารหัสด้านบนได้ไหม

4
ทำตามสองไฟล์บันทึก
ฉันมีเว็บแอปพลิเคชันที่ส่งออกไปยังไฟล์บันทึกจำนวนหนึ่งพร้อมข้อมูลประสิทธิภาพ ล็อกไฟล์หนึ่งแสดงผลเวลาในการเรียกใช้โค้ดและอีกช่วงเวลาหนึ่งเป็นเอาต์พุต SQL ฉันไม่สามารถควบคุมตัวบันทึกหรือรหัสที่สร้างไฟล์บันทึกได้ แต่ฉันต้องการส่งออกบันทึกในที่เดียว ตอนนี้ฉันกำลังทำอะไรแบบนี้ tail -f sqlLogs.log | grep sql-time tail -f perflogs.log | grep exec-time สิ่งนี้จะส่งออกบางสิ่งไปยังคอนโซลทุกครั้งที่มีการเรียกใช้งาน SQL ในแอปพลิเคชัน แต่ฉันต้องเรียกใช้รหัสในสองรอบแยกต่างหาก SSH อย่างไรก็ตามสิ่งที่ฉันต้องการสามารถตัดทั้งสองไฟล์ในเซสชัน SSH เดียวกัน เป็นไปได้ไหม
14 files  tail  grep 

3
ทำไมคำสั่ง pipe“ l | grep” 1“” ได้รับผลที่ผิดหรือเปล่า?
ดังที่แสดงในรูปภาพฉันใช้lเพื่อรับไฟล์ในโฟลเดอร์ปัจจุบัน แล้วฉันต้องการที่จะได้รับไฟล์ที่มีจำนวน1ดังนั้นฉันใช้และpipegrep แต่ทำไม2และ22ไฟล์จึงแสดงออกมา และอะไรคือสิ่งที่1;34m? $ l ./ ../ 1 11 2 22 $ l | grep "1" 1;34m./ 1;32m../ 1 11 2 22 ปรับปรุง ฉันได้ตั้งชื่อแทนคำสั่งlไว้ในzshrcไฟล์แล้ว alias lsp="ls" alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' alias ls="ls -alh --color" และนี่คือผลลัพธ์ของtypeคำสั่ง: >$ type ls ls is an alias for ls …
13 command-line  grep  ls  pipe 

3
การเรียกซ้ำ grep ล้มเหลวสำหรับไฟล์ * .c
ฉันพยายามค้นหารูปแบบซ้ำในไฟล์. c ทั้งหมดด้วยวิธีต่อไปนี้ > grep -lr search-pattern *.c แต่ได้สิ่งนี้เป็นผลลัพธ์ > grep: *.c: No such file or directory เมื่อฉันใช้สิ่งนี้: > grep -lr search-pattern * ฉันได้รับมากมาย ไฟล์ c ในไดเรกทอรีที่มีรูปแบบ เกิดอะไรขึ้นกับการแสดงออกก่อนหน้านี้?
13 grep 

3
แยกคำจากสตริงโดยใช้ grep / sed / awk
ฉันมีสาย 00:28:04 /usr/lib/jvm/jre/bin/java -DJDBC_CONNECTION_STRING= -Dspring.profiles.active=qa -XX:MaxPermSize=256 และต้องการแยกคำqaที่ตาม-Dspring.profiles.activeมา ฉันมีบันทึกสตริงในไฟล์ text.txt เพียงเพื่อสาธิตมัน เมื่อฉันทำ grep -r -o "spring.profiles.active=" text.txt ผลที่ได้คือ spring.profiles.active= คำนี้ไม่เคยเป็นqaมันอาจจะเป็นหรือproddev สิ่งที่ผมอยากจะทำคือการหาคำspring.profiles.activeและหลังจาก=สารสกัดจากว่าคำว่า ฉันต้องการเชลล์สคริปต์นี้เพราะฉันใช้คำเพื่อกำหนดค่ารายการอื่น ๆ บนเซิร์ฟเวอร์ เป็นไปได้และถ้าเป็นเช่นนั้นฉันจะทำอย่างไร
12 command-line  bash  grep  sed  awk 

2
grep: วิธีระบายสีคำหลัก 2 คำอย่างไร
ฉันรู้วิธีการ grep 2 คำหลักโดยใช้คำสั่ง 1 แต่ฉันสามารถจัดการเพื่อสีหนึ่งของพวกเขาในการส่งออก นี่คือคำสั่งของฉัน: grep 'keyword1' file.log | grep 'keyword2' เพียง แต่keyword2เป็นไฮไลต์ ฉันจะkeyword1เน้นในเวลาเดียวกันได้อย่างไร
12 grep 

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