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

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

1
`set -e` และ` grep` idiom เพื่อป้องกันการออกจาก shell script ก่อนเมื่อไม่พบ pattern
ต้องการความช่วยเหลือ - ในบริบทของเชลล์สคริปต์บน GNU / LINUX ทุบตี: set -eฉันมักจะใช้ บ่อยครั้งที่ฉันต้องการgrepและไม่ต้องการให้สคริปต์ยุติการทำงานหากgrepมีสถานะออกจากการ1ระบุรูปแบบที่ไม่พบ บางครั้งฉันได้พยายามที่จะแก้ปัญหานี้มีดังนี้: (ลองฉัน) ถ้าset +o pipefailและเรียก grep ด้วยบางอย่างเช่นนี้grep 'p' | wc -lฉันจะได้รับพฤติกรรมที่ต้องการจนกว่าผู้ดูแลในอนาคตจะเปิดpipefailใช้งาน นอกจากนี้ฉันชอบเปิดใช้งานpipefailสิ่งนี้ไม่ได้ผลสำหรับฉัน (ลอง II) ใช้รูปแบบการจับคู่ลายเส้นและsedหรือawkเท่านั้นจากนั้นwcจับคู่บรรทัดเพื่อทดสอบรูปแบบที่ตรงกัน ฉันไม่ชอบตัวเลือกนี้เพราะใช้sedจะgrepดูเหมือนว่าวิธีแก้ปัญหาสำหรับปัญหาที่แท้จริงของฉัน (ลอง III) อัน นี้เป็นรายการโปรดของฉัน - สิ่งที่ชอบ:set +e; grep 'p'; set-e ความเข้าใจ / สำนวนใด ๆ ที่จะได้รับการชื่นชมมากที่สุด - ขอบคุณ
15 bash  grep  gnu  coreutils 

5
พิมพ์รูปแบบที่ไม่ตรงกันโดยใช้ grep พร้อมรูปแบบจากไฟล์
patterns.txt: "BananaOpinion" "ExitWarning" "SomeMessage" "Help" "Introduction" "MessageToUser" strings.xml <string name="Introduction">One day there was an apple that went to the market.</string> <string name="BananaOpinion">Bananas are great!</string> <string name="MessageToUser">We would like to give you apples, bananas and tomatoes.</string> ผลลัพธ์ที่คาดหวัง: "ExitWarning" "SomeMessage" "Help" ฉันจะพิมพ์คำศัพท์patterns.txtที่ไม่พบได้Strings.xmlอย่างไร ฉันสามารถพิมพ์ตรง / ตรงกันสายในStrings.xmlแต่ฉันจะพิมพ์เปรียบรูปแบบ ? ฉันใช้ ggrep (GNU grep) รุ่น 2.21 …
15 grep 

6
คำสั่ง Grep เพื่อค้นหาไฟล์ที่มีสตริงข้อความและย้ายไฟล์เหล่านั้น
ฉันสามารถค้นหาไฟล์ในโฟลเดอร์ที่มีสตริงข้อความเฉพาะโดยใช้คำสั่งนี้: grep -lir 'string' ~/directory/* ฉันจะย้ายไฟล์ที่ปรากฏในผลลัพธ์ข้างต้นไปยังตำแหน่งอื่นได้อย่างไร
15 grep 

5
ทำไม grep ไม่ทำงานกับการเปลี่ยนเส้นทาง?
การใช้topคำสั่งด้วยการเปลี่ยนเส้นทางทำงานได้ดี: top > top.log ตอนนี้ฉันต้องการใช้ grep เพื่อกรองบรรทัด: top | grep "my_program" > top.log แต่ไฟล์บันทึกจะว่างเปล่า แต่ grep ให้เอาต์พุตเมื่อใช้ top | grep "my_program" ไหนmy_programจะต้องมีการแทนที่ด้วยโปรแกรมวิ่งไปดูการส่งออกบางส่วน ทำไมวิธีการของฉันไม่ทำงาน และฉันจะแก้ไขได้อย่างไร
15 bash  grep 

7
วิธีการ grep -v และแยกบรรทัดถัดไปหลังการแข่งขัน?
จะกรอง 2 บรรทัดสำหรับแต่ละบรรทัดที่ตรงกับ grep regex ได้อย่างไร นี่คือการทดสอบขั้นต่ำของฉัน: SomeTestAAAA EndTest SomeTestABCD EndTest SomeTestDEFG EndTest SomeTestAABC EndTest SomeTestACDF EndTest และเห็นได้ชัดว่าฉันพยายามเช่นgrep -vA 1 SomeTestAAที่ไม่ทำงาน ผลลัพธ์ที่ต้องการคือ: SomeTestABCD EndTest SomeTestDEFG EndTest SomeTestACDF EndTest

2
นิพจน์ทั่วไปแตกต่างจากอักขระตัวแทนที่ใช้กรองไฟล์อย่างไร
ในขณะที่เราใช้*เพื่อแสดงถึงการเป็นศูนย์หรือตัวอักษรที่ก่อนหน้ามากขึ้นในการgrepที่เราจะใช้*.cในการค้นหาไฟล์ C ทั้งหมดเมื่อเราใช้มันกับคำสั่งเช่นls ls *.cมีคนบอกได้*ไหมว่าการใช้งานแตกต่างกันในสองกรณีนี้อย่างไร
15 grep  ls 

2
ถึง grep 20 ตัวละครหลังและก่อนการแข่งขัน
ฉันมีปัญหาที่ฉันได้รับข้อมูลมากเกินไปหลังจากการแข่งขัน grep -RnisI --color=auto "pseudomonas" * ฉันต้องการได้แค่ 20 ตัวอักษรหรือ 10 คำหลังและก่อนการแข่งขัน เครื่องมือที่เหมาะสมในการทำสิ่งนี้คืออะไร?
15 grep  osx 

2
ฉันจะป้องกันการขยาย Bash จากการส่งไฟล์ที่ขึ้นต้นด้วย“ -” เป็นอาร์กิวเมนต์ได้อย่างไร
ฉันพยายามค้นหาสตริงซ้ำด้วยซ้ำgrepแต่ฉันได้รับสิ่งนี้: $ grep -r "stuff" * grep: unrecognized option '---corporate-discount.csv' Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. ฉันจะป้องกัน Bash ไม่ให้ส่งไฟล์ที่ขึ้นต้นด้วย-อาร์กิวเมนต์ได้อย่างไร
14 shell  grep 

5
หนึ่งจะแยกสถานะการออกของคำสั่งลงในตัวแปรได้อย่างไร
ฉันเริ่มเรียนรู้การทุบตีเมื่อสองสามวันก่อน ฉันพยายามรับสถานะทางออกของgrepการแสดงออกเป็นตัวแปรเช่นนี้ check=grep -ci 'text' file.sh และผลลัพธ์ที่ฉันได้รับคือ No command '-ic' found ฉันควรทำด้วยคำสั่งไพพ์หรือไม่?

5
ฉันจะนับจำนวนบรรทัดในไฟล์หลังจาก grep ตรงกันได้อย่างไร
ฉันพยายามนับจำนวนบรรทัดหลังจากแถวที่มีปัญหาในไฟล์ csv ฉันรู้ว่าฉันสามารถใช้grep -a #ไวยากรณ์เพื่อส่งออก # จำนวนบรรทัดหลังจากพบการแข่งขัน ฉันสนใจเฉพาะจำนวนบรรทัดที่แท้จริงเท่านั้น ฉันรู้ว่าฉันสามารถตั้งค่าจำนวนเป็น MAX_INT แล้วไพพ์ลงในไฟล์และทำการประมวลผลเพิ่มเติม ฉันกำลังมองหาหนึ่งซับที่สั้นกระชับที่เพิ่งบอกฉันนับ ข้อเสนอแนะใด ๆ
14 files  grep  csv 


2
สคริปต์เพื่อทดสอบแป้นคีย์บอร์ดอย่างรวดเร็วทั้งหมด
ฉันต้องตรวจสอบโน้ตบุ๊กบางตัวเพื่อหาแป้นคีย์บอร์ดที่ไม่ดีดังนั้นฉันจึงอยากเร่งความเร็วให้มากที่สุด ฉันไม่พบสิ่งใดสำหรับงานนี้ดังนั้นความคิดของฉันคือสคริปต์ที่อ่านคีย์ที่กดและรู้ว่าแป้นคีย์บอร์ดทั้งหมดดังนั้นฉันจึงสามารถทุบตีมันได้อย่างรวดเร็วและรายงานว่ายังไม่ได้กด ฉันคิดว่าฉันจะประสบความสำเร็จที่มีทั้งshowkeyหรือxev, grepping เอาท์พุท: xev | grep keysym ตัวอย่างผลลัพธ์: state 0x10, keycode 46 (keysym 0x6c, l), same_screen YES, state 0x10, keycode 33 (keysym 0x70, p), same_screen YES, state 0x11, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES, state 0x10, keycode 51 (keysym 0x5d, bracketright), same_screen YES, state 0x10, keycode 36 …
14 bash  grep  awk  keyboard  stdout 

4
วิธีการ grep สำหรับท่อ |
ฉันจะ grep สำหรับบรรทัดที่มีอักขระไพพ์|หรือตัวอักษร>: files content: |this is test where is > this is none ตอนนี้สิ่งที่ฉันต้องการใช้คำสั่ง grep คือ grep -iE "<some expression>" file_name เอาท์พุท: |this is test where is >

2
grep: ค้นหาทุกบรรทัดที่มีตัวอักษรคันจิญี่ปุ่น
ในแฟ้มข้อความขนาดใหญ่ UTF-8 ผมต้องการที่จะแสดงให้ทุกบรรทัดที่ประกอบด้วยญี่ปุ่นkanjis อะไรgrep(หรืออื่น ๆ ) ไม่แสดงออกนี้หรือไม่? ถ้าฉันไม่ผิด kanjis ตัวละครระหว่างและ\u4e00\u4dbf ฉันไม่จำเป็นต้องแสดงkanasแต่การแสดงให้พวกเขาเช่นกันจะไม่เป็นปัญหาใหญ่
14 grep  unicode 


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