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

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

3
ตัดต่อไฟล์บันทึก แต่แสดงเฉพาะบรรทัด
ฉันกำลังปรับแต่งไฟล์บันทึกด้วยแฟล็ก -f จากนั้นฉันก็ส่งข้อมูลนี้ไปที่ grep เพื่อค้นหาเฉพาะบรรทัดที่มี "X" มันใช้งานได้ดีอย่างสมบูรณ์แบบ ตอนนี้ฉันต้องการไพพ์นี้อีกครั้งเป็น grep อื่นซึ่งจะลบบรรทัดทั้งหมดที่มี "Y" เมื่อฉันเพิ่มไพพ์ที่สองไฟล์จะหยุดรีเฟรชและดูเหมือนว่าไม่มีข้อมูลมา นี่คือคำสั่งที่ใช้งานได้: tail -f my_file.log | grep "X" นี่คือคำสั่งที่ไม่: tail -f my_file.log | grep "X" | grep -v "Y" ฉันควรจัดโครงสร้างสิ่งนี้อย่างไรเพื่อให้คำสั่งทำงานได้?

3
วิธีแสดงเนื้อหาของไฟล์. zip ทั้งหมดในโฟลเดอร์และ grep สำหรับไฟล์ใดไฟล์หนึ่ง
ฉันมีไฟล์ zip 348 ไฟล์และฉันต้องการค้นหาไฟล์ที่อยู่ในไฟล์ zip อย่างใดอย่างหนึ่งunzip -lไม่ทำงานกับ wild card ใช่ไหม ฉันจะแสดงรายการเนื้อหาของ.zipไฟล์ทั้งหมดและgrepผ่านรายการที่รวมของไฟล์ทั้งหมดที่มีอยู่ในรหัสไปรษณีย์ได้อย่างไร
28 grep  zip  unzip 

4
“ xargs grep” ทำอะไร?
ฉันรู้grepคำสั่งและฉันกำลังเรียนรู้เกี่ยวกับฟังก์ชันการใช้งานของxargsดังนั้นฉันอ่านหน้านี้ซึ่งให้ตัวอย่างบางส่วนเกี่ยวกับวิธีการใช้xargsคำสั่ง ฉันสับสนโดยตัวอย่างล่าสุดตัวอย่างที่ 10 มันบอกว่า "คำสั่ง xargs ดำเนินการคำสั่ง grep เพื่อค้นหาไฟล์ทั้งหมด (ในบรรดาไฟล์ที่มาจากคำสั่ง find) ที่มีสตริง 'stdlib.h'" $ find . -name '*.c' | xargs grep 'stdlib.h' ./tgsthreads.c:#include ./valgrind.c:#include ./direntry.c:#include ./xvirus.c:#include ./temp.c:#include ... ... ... อย่างไรก็ตามสิ่งที่แตกต่างในการใช้ก็คือ $ find . -name '*.c' | grep 'stdlib.h' ? เห็นได้ชัดว่าฉันยังคงดิ้นรนกับสิ่งที่ xargs กำลังทำอยู่ดังนั้นความช่วยเหลือใด ๆ ที่ชื่นชม!

1
การบัฟเฟอร์บรรทัด grep ทำอะไรได้บ้าง
นี่คือคำสั่งของฉันที่ฉันใช้ในสคริปต์กับgrepข้อมูลตามเวลาจริง ดูเหมือนว่าจะดึงข้อมูลเรียลไทม์ไม่ถูกต้องเนื่องจากมันเพิ่งพลาดบางบรรทัด tail -f <file> | fgrep "string" | sed 's/stuff//g' >> output.txt คำสั่งต่อไปนี้จะทำอะไร? "การบัฟเฟอร์บรรทัด" คืออะไร tail -f <file> | fgrep --line-buffered "string" | sed 's/stuff//g' >> output.txt
25 grep 

2
ทำไมคำสั่ง grep นี้ไม่ทำงาน?
เมื่อฉันพยายามใช้ grep ในแบบนี้: service --status-all | grep network มันยังคงแสดงรายการบริการทั้งหมดแม้ว่าฉันจะวางมันลงgrepเพื่อ จำกัด ไว้ที่สตริง "เครือข่าย" เท่านั้น ตามความเป็นจริง: สังเกตเห็นบทความนี้ที่อธิบายว่าทำไมคำสั่งทำงานในลักษณะนี้เป็นสิ่งที่ฉันชอบเกี่ยวกับ linux มีเหตุผลที่ดีอยู่เสมอ แต่ไม่จำเป็นต้องหยั่งรู้
24 services  grep 

2
การปรับเปลี่ยนสีของ grep
เมื่อฉัน grep บางอย่างผลลัพธ์จะเป็นสีแดงเสมอ ฉันรู้ว่าคำสั่งgrep --colorพิมพ์ผลลัพธ์เป็นสีซึ่งโดยค่าเริ่มต้นจะเป็นสีแดง ฉันสามารถเปลี่ยนสีได้หรือไม่?

2
ความแตกต่างระหว่างไฟล์ grep apple และไฟล์ grep“ apple” คืออะไร?
ความแตกต่างระหว่างgrep apple fileและgrep "apple" fileคืออะไร? การใส่เครื่องหมายคำพูดทำอะไร? ทั้งคู่ดูเหมือนจะทำงานและทำสิ่งเดียวกัน (แสดงบรรทัดเดียวกัน)
22 bash  grep  sh 

3
การใช้ grep กับ pipe และ ampersand เพื่อกรองข้อผิดพลาดจาก find
ฉันใช้ cygwin เพื่อค้นหาไฟล์ใน cygdrive อย่างไรก็ตามฉันต้องระงับการอนุญาตข้อความปฏิเสธ (มิฉะนั้นผลลัพธ์ที่ซ่อนอยู่ในข้อความข้อผิดพลาด) คำสั่งดังต่อไปนี้ใช้งานได้: find -name 'myfile.*' |& grep -v "Permission denied" ฉันไม่เข้าใจว่าทำไมเครื่องหมายแอมเปอร์แซนด์จึงต้องใส่ลงในคำสั่งนี้คาดว่าจะใช้งานได้ แต่ก็ไม่ได้ find -name 'myfile.*' | grep -v "Permission denied" กรุณาอธิบายความหมายของเครื่องหมายและ
22 bash  command-line  find  grep 

1
การใช้ตัวดัดแปลงของ Perl-compatible Regex (PCRE) ใน grep
ตามgrep --helpและman grep, เราสามารถใช้-Pตัวเลือกเพื่อตีความรูปแบบเป็นนิพจน์ปกติของ Perl (PCRE, ให้แม่นยำ), แทนค่าเริ่มต้นของPOSIX นิพจน์พื้นฐานปกติ (BRE) ในภาษา Perl ตัวดัดแปลงต่างๆสามารถเพิ่มลงในนิพจน์เพื่อปรับการตีความรูปแบบ (ในไวยากรณ์ของ/pattern/modifiers) ดังนั้นใครบางคนสามารถเพิ่มการปรับเปลี่ยนการแสดงออกปกติ Perl ของ grep? ฉันลองชุดรูปแบบบางอย่างเช่นgrep -P "/^got.it$/ms" [FILE]แต่ผลการค้นหาผิด อย่างไรก็ตามเกี่ยวกับการตีความ PCRE นั้นคู่มือชี้ให้เห็นว่า: นี่คือการทดลองอย่างมากและgrep -Pอาจเตือนถึงคุณลักษณะที่ยังไม่ได้ใช้งาน เป็นไปได้ไหมที่เครื่องมือ grep ไม่รองรับตัวดัดแปลงเลย ? โดยวิธีการที่ฉันสังเกตเห็นว่าอย่างใดอย่างหนึ่งสามารถดำเนินการจับคู่รูปแบบที่ไม่สำคัญกรณีโดยใช้-iตัวเลือกซึ่งเป็นตัวอย่างของการปรับเปลี่ยน
20 grep  perl  regex 

2
ฉันจะ grep สำหรับหลายรูปแบบในหลายบรรทัดได้อย่างไร
เพื่อความแม่นยำ Some text begin Some text goes here. end Some more text และฉันต้องการแยกบล็อกทั้งหมดที่เริ่มต้นจาก "เริ่มต้น" จนถึง "สิ้นสุด" ด้วย awk เราสามารถทำเช่นawk '/begin/,/end/' textนั้น จะทำอย่างไรกับ grep?

6
ฉันจะ grep ผ่านความเป็นไปได้ที่แล้วเสร็จของแท็บได้อย่างไร
เมื่อฉันกดแท็บในคอนโซลฉันได้รับผลลัพธ์นี้ แสดงความเป็นไปได้ทั้งหมด 2957 รายการ? (y หรือ n) มีวิธีใดบ้างที่จะใช้grepกับความเป็นไปได้เหล่านี้ 2957? ฉันต้องการค้นหาคำสั่งทั้งหมดด้วยคำว่า "svn" ในพวกเขา

3
จะรับหมายเลขบรรทัดจาก grep ได้อย่างไร
grep ต่อไปนี้ grep -r -e -n coll * จะแสดง fullpath/filename: <tag-name>coll</tag-name> ฉันต้องการทราบว่าบรรทัดใดมีข้อความต่อไปนี้ฉันพยายามเพิ่ม-nแต่มันไม่ทำงาน ฉันพยายามเพิ่ม | grep -n *แต่มันก็ทำอะไรแปลก ๆ สิ่งที่ฉันต้องการจะดู (ฉันไม่สนใจรูปแบบ) คือ fullpath/filename:10: <tag-name>coll</tag-name>

1
ละเว้นชื่อไฟล์ใน grep
ฉันกำลัง greping สตริงจากหลาย ๆ ไฟล์ แต่หนึ่งในผลข้างเคียงที่ไม่พึงประสงค์คือชื่อไฟล์ prefacing เอาท์พุท ฉันจะระงับเอาต์พุตชื่อไฟล์โดยใช้ grep เท่านั้นได้อย่างไร $ grep -i lp lpNet* lpNet:This was printed via the internet using the lp command. lpNet:I believe lp doesnt care what the device is. lpNet1:This was printed via the internet using the lp command. lpNet1:I believe lp doesnt care …
18 command-line  bash  grep  cat 


2
^ $ และ ^ # หมายถึงอะไร
BADIPS=$(egrep -v "^#|^$" $tDB)ฉันไม่เข้าใจ คุณอธิบายได้ไหม รหัสเต็ม: #!/bin/bash # Purpose: Block all traffic from AFGHANISTAN (af) and CHINA (CN). Use ISO code. # # See url for more info - http://www.cyberciti.biz/faq/?p=3402 # Author: nixCraft <www.cyberciti.biz> under GPL v.2.0+ # ------------------------------------------------------------------------------- ISO="af cn" ### Set PATH ### IPT=/sbin/iptables WGET=/usr/bin/wget EGREP=/bin/egrep ### No …
17 grep  regex 

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