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

สำหรับคำถามเกี่ยวกับ grep เครื่องมือบรรทัดคำสั่งสำหรับค้นหารูปแบบข้อความในไฟล์ ใช้แท็กนี้สำหรับคำถามเกี่ยวกับ grep หรือคำถามเกี่ยวกับปัญหาที่เกิดขึ้นจากการใช้เครื่องมือบรรทัดคำสั่ง grep

2
วิธีการใช้หาง -f พร้อม grep เพื่อแสดงเส้นโดยรอบ
ผมอยากจะเห็นผลลัพธ์ในส่วนlogfile greped โดยโดเมนเดียวเท่านั้น แต่ยังดังต่อไปนี้ทั้งสองสาย ตัวอย่าง: tail -f /var/log/apache2/modsec_audit.log |grep mydomain.de สิ่งนี้แสดงทุกบรรทัดที่มี"mydomain.de"แต่ข้อมูลสำคัญอยู่ในบรรทัดด้านล่างบรรทัดซึ่งมีโดเมนรวมอยู่ด้วย
16 grep  tail 

2
การค้นหา grep -r โดยค่าเริ่มต้นอยู่ที่ไหน
ฉันพบว่าฉันค้นหาโดยใช้ grep โดยไม่ระบุเส้นทางเหมือนgrep -r 'mytext'ใช้เวลานานมาก ในขณะเดียวกันถ้าฉันค้นหาด้วยพา ธ ที่ระบุgrep -r 'mytext' .มันจะค้นหาสิ่งที่ฉันต้องการได้ทันที ดังนั้นฉันอยากรู้ว่าในรูปแบบแรกในไดเรกทอรีใด grep ค้นหา? UDATE: รุ่น grep: grep (GNU grep) 2.10
16 grep  recursive 

4
การค้นหา ID ของกระบวนการและฆ่ามัน
เมื่อใดที่ฉันต้องฆ่ากระบวนการพื้นหลังที่ฉันทำ ps -e | grep <process_name> ซึ่งพิมพ์บางอย่างเช่นนี้1766 ? 00:00:13 conkyจากนั้นฉันใช้ ID กระบวนการในการkillkill 1766มันชอบ มีวิธีใดที่ฉันสามารถทำให้สิ่งนี้ง่ายขึ้น? ทำให้เร็วขึ้นไหม ลดจำนวนการพิมพ์หรือไม่
16 process  grep  kill  ps 

6
ฉันจะ grep ซ้ำโดยใช้ไฟล์เก็บถาวรที่บีบอัดได้อย่างไร
ฉันพยายามค้นหาโมดูลuse Test::Versionใน cpan ดังนั้นฉันจึงเคยminicpanสะท้อนมัน ปัญหาของฉันคือฉันต้องวนซ้ำไฟล์เก็บถาวรที่ดาวน์โหลดมาและ grep ไฟล์ที่อยู่ในไฟล์เก็บถาวร มีใครบอกฉันได้ไหมว่าฉันจะทำเช่นนี้? ควรเป็นวิธีที่บอกฉันว่าไฟล์ใดในไฟล์เก็บถาวรและบรรทัดใดที่เปิดอยู่ (หมายเหตุ: ไฟล์เหล่านี้ไม่ใช่ไฟล์ tarball ทั้งหมดเป็นไฟล์ซิป)
16 grep  find  zip  recursive  archive 

3
bash find xargs grep ปรากฏเพียงครั้งเดียวเท่านั้น
อาจจะแปลกไปหน่อยและบางทีอาจมีเครื่องมืออื่นที่จะทำเช่นนี้ แต่ก็ .. ฉันใช้คำสั่ง bash แบบคลาสสิคต่อไปนี้เพื่อค้นหาไฟล์ทั้งหมดที่มีสตริง: find . -type f | xargs grep "something" ฉันมีไฟล์จำนวนมากในหลายระดับ การเกิดขึ้นครั้งแรกของ "บางสิ่ง" นั้นเพียงพอสำหรับฉัน แต่การค้นหายังคงค้นหาอยู่และใช้เวลานานในการทำให้ไฟล์ที่เหลือเสร็จสมบูรณ์ สิ่งที่ฉันต้องการจะทำคือการ "ตอบกลับ" จาก grep back เพื่อค้นหาเพื่อให้การค้นหาสามารถหยุดการค้นหาไฟล์เพิ่มเติมได้ เป็นไปได้ไหม
16 bash  find  grep  xargs 

5
ค้นหาไฟล์ที่มีคำค้นหาหลาย ๆ คำในไฟล์
ฉันกำลังมองหาวิธีที่จะแสดงรายการไฟล์ทั้งหมดในไดเรกทอรีที่มีชุดคำหลักเต็มรูปแบบที่ฉันค้นหาทุกที่ในไฟล์ ดังนั้นคำหลักไม่จำเป็นต้องปรากฏในบรรทัดเดียวกัน วิธีหนึ่งในการทำเช่นนี้คือ: grep -l one $(grep -l two $(grep -l three *)) คำหลักสามคำเป็นเพียงตัวอย่างมันอาจมีสองหรือสี่คำเป็นต้น วิธีที่สองที่ฉันนึกได้คือ: grep -l one * | xargs grep -l two | xargs grep -l three วิธีที่สามที่ปรากฏในคำถามอื่นจะเป็น: find . -type f \ -exec grep -q one {} \; -a \ -exec grep -q two {} \; -a …


8
จะค้นหาไฟล์ที่มีอักขระ 100% NUL ในเนื้อหาได้อย่างไร
คำสั่งบรรทัดคำสั่ง Linux ที่สามารถระบุไฟล์ดังกล่าวคืออะไร? AFAIK findคำสั่ง (หรือgrep) สามารถจับคู่สตริงเฉพาะภายในไฟล์ข้อความเท่านั้น แต่ผมอยากให้ตรงกับเนื้อหาทั้งหมดคือผมอยากจะเห็นไฟล์ที่ตรงกับการแสดงออกปกติ\0+, ไม่สนใจตัวอักษรท้ายบรรทัด (s) บางทีfind . cat | grepสำนวนอาจใช้งานได้ แต่ฉันไม่ทราบวิธีการทำ grep โดยไม่สนใจบรรทัด (และถือว่าไฟล์เป็นไบนารี) พื้นหลัง: ทุกสองสามวันเมื่อแล็ปท็อปของฉันหยุดทำงานพาร์ติชัน btrfs ของฉันจะสูญเสียข้อมูล: ไฟล์ที่เปิดสำหรับการเขียนจะได้รับเนื้อหาของพวกเขาแทนที่ด้วยศูนย์ (ขนาดของไฟล์ยังคงไม่เปลี่ยนแปลง) ฉันใช้การซิงโครไนซ์และฉันไม่ต้องการให้ไฟล์ปลอมเหล่านี้เผยแพร่: ฉันต้องการวิธีที่จะระบุไฟล์เหล่านั้นเพื่อที่ฉันจะได้ไม่ต้องทำการสำรองข้อมูล

6
find และ echo ชื่อไฟล์ที่พบรูปแบบเท่านั้น
ฉันใช้มันมากการปรับปรุงที่ฉันพยายามทำให้สำเร็จคือการหลีกเลี่ยงชื่อไฟล์ echo ที่ไม่ตรงกับ grep วิธีที่ดีกว่าในการทำเช่นนี้? for file in `find . -name "*.py"`; do echo $file; grep something $file; done
16 grep  find 

5
จะฆ่ากระบวนการทั้งหมดด้วยชื่อที่กำหนดได้อย่างไร
ฉันเรียกใช้คำสั่งps -A | grep <application_name>และรับรายการกระบวนการเช่นนี้: 19440 ? 00:00:11 <application_name> 21630 ? 00:00:00 <application_name> 22694 ? 00:00:00 <application_name> 19440ฉันต้องการที่จะฆ่ากระบวนการทั้งหมดจากรายการ 21630, 22694, ฉันลองแล้วps -A | grep <application_name> | xargs kill -9 $1แต่ใช้งานได้กับข้อผิดพลาด kill: illegal pid ? kill: illegal pid 00:00:00 kill: illegal pid <application_name> ฉันจะทำสิ่งนี้ได้อย่างสง่างาม
16 grep  process  kill  ps 

2
การใช้ grep กับแฟล็ก --exclude-dir เพื่อแยกหลายไดเร็กทอรี
ฉันกำลังค้นหาแอปพลิเคชัน Ruby on Rails สำหรับคำที่ใช้grepบน OSX และฉันต้องการแยกไดเรกทอรีที่ตรงกับรูปแบบบางอย่าง ฉันใช้คำสั่งต่อไปนี้: grep -inRw -E 'direct' . --exclude-dir -E 'git|log|asset' คำสั่งนี้ไม่ได้ทำในสิ่งที่ฉันคิดว่ามันจะทำ นี่คือวิธีที่ฉันคิดว่ามันจะทำงาน: การค้นหาแบบคำนึงถึงขนาดตัวพิมพ์ n - พิมพ์หมายเลขบรรทัดที่พบรูปแบบ R - ค้นหาซ้ำ w - ฉันต้องการทั้งคำเท่านั้น - เช่นจับคู่ "โดยตรง" แต่ไม่ใช่ "ไดเรกทอรี" -E - ใช้นิพจน์ทั่วไปที่ขยายเพิ่ม 'direct' - นิพจน์ทั่วไปที่ฉันต้องการจับคู่ . - ค้นหาในไดเรกทอรีปัจจุบัน --exclude-dir -E 'git | log | asset' - …

1
ค้นหารูปแบบจากไฟล์หนึ่งที่อยู่ในรายการอื่น
ฉันต้องการค้นหารูปแบบที่ระบุไว้ในไฟล์เดียวและค้นหาในไฟล์อื่น ไฟล์ที่สองมีรูปแบบเหล่านั้นคั่นด้วยเครื่องหมายจุลภาค สำหรับเช่นไฟล์แรก F1 มียีน ENSG00000187546 ENSG00000113492 ENSG00000166971 และไฟล์ที่สอง F2 มียีนเหล่านั้นพร้อมกับคอลัมน์เพิ่มเติม (ห้าคอลัมน์) ที่ฉันต้องการ region gene chromosome start end intronic ENSG00000135870 1 173921301 173921301 intergenic ENSG00000166971(dist=56181),ENSG00000103494(dist=37091) 16 53594504 53594504 ncRNA_intronic ENSG00000215231 5 5039185 5039185 intronic ENSG00000157890 15 66353740 66353740 ดังนั้นยีน ENSG00000166971 ซึ่งมีอยู่ในไฟล์ที่สองไม่แสดงเป็น grep เพราะมันมียีนอื่นอยู่ด้วยโดยคั่นด้วยเครื่องหมายจุลภาค รหัสของฉันคือ: grep -f "F1.txt" "F2.txt" >output.txt ฉันต้องการค่าเหล่านั้นแม้ว่าจะมีหนึ่งในนั้นและข้อมูลที่เกี่ยวข้องด้วยมีวิธีใดที่จะทำเช่นนี้?
15 grep 

8
วิธีการ grep หลายบรรทัด
คุณจะทำการ grep สำหรับข้อความที่ปรากฏในสองบรรทัดได้อย่างไร? ตัวอย่างเช่น: pbsnodes เป็นคำสั่งที่ฉันใช้ที่ส่งคืนการใช้ประโยชน์ของคลัสเตอร์ linux root$ pbsnodes node1 state = free procs = 2 bar = foobar node2 state = free procs = 4 bar = foobar node3 state = busy procs = 8 bar = foobar ฉันต้องการกำหนดจำนวนของ procs ที่ตรงกับโหนดที่อยู่ในสถานะ 'ว่าง' จนถึงตอนนี้ฉันสามารถระบุ "จำนวนของ procs" และ "โหนดในสถานะอิสระ" แต่ฉันต้องการรวมพวกมันเป็นคำสั่งเดียวที่แสดง procs …

1
ฉันจะเก็บรหัสสีด้วยอินพุต grep ได้อย่างไร
ถ้าฉันใช้สองgrepคำสั่งติดต่อกันเช่น: echo "foo bar" | grep foo | grep bar จากนั้นรูปแบบแรก ("foo") จะไม่ถูกเน้น ในความเป็นจริงดูเหมือนว่า grep จะลบรหัสสีออกจากอินพุต มีวิธีใดในการป้องกันสิ่งนี้หรือไม่?
15 shell  grep  colors 

6
วิธีค้นหาคำในเนื้อหาทั้งหมดของไดเรกทอรีใน linux
ต้องค้นหาบางสิ่งในเนื้อหาทั้งหมด ฉันกำลังพยายาม: find . | xargs grep word ฉันได้รับข้อผิดพลาด: xargs: อัญประกาศ ทำอย่างไรจึงจะได้สิ่งนี้?
15 linux  shell  grep  find  xargs 

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