ฉันมักใช้ grep เพื่อค้นหาไฟล์ที่มีรายการบางรายการเช่นนี้:
grep -R 'MyClassName'
สิ่งที่ดีคือมันคืนไฟล์เนื้อหาและทำเครื่องหมายสตริงที่พบเป็นสีแดง สิ่งที่ไม่ดีคือฉันยังมีไฟล์ขนาดใหญ่ที่เขียนข้อความทั้งหมดในบรรทัดเดียวขนาดใหญ่ ตอนนี้ grep เอาต์พุตมากเกินไปเมื่อค้นหาข้อความภายในไฟล์ขนาดใหญ่เหล่านั้น มีวิธี จำกัด ผลลัพธ์ให้เช่น 5 คำไปทางซ้ายและไปทางขวาหรือไม่ หรืออาจ จำกัด ผลลัพธ์ให้เหลือ 30 ตัวอักษรไปทางซ้ายและไปทางขวา?
cut
เพราะมันแยกจากตัวคั่นหรือตามจำนวนตัวอักษรเท่านั้น แม้ว่าเมื่อฉันพบบรรทัดด้วยMyClassName
อาจเป็นที่ใดก็ได้ในบรรทัดและไม่อยู่ในตำแหน่งเดียวกันเสมอไป นอกจากนี้อาจมีการเปลี่ยนแปลงของตัวละครในด้านหน้าและด้านหลังของมันซึ่งแบ่งความเป็นไปได้ที่จะแยกโดยตัวคั่น
MyClassName
ฉันต้องการได้รับผลลัพธ์จากชื่อไฟล์และอักขระ x ทางด้านซ้ายและด้านขวา x คือหมายเลขใด ๆ ที่ฉันให้ตัวอย่าง 30 ส่วนที่เหลือของเนื้อหาไฟล์จะถูกละเว้น นี่คือการรับบริบทของไฟล์ที่ตรงกันและ จำกัด การโอเวอร์โหลด
cut
หากมีสามไฟล์ที่มีอินพุตต่อไปนี้: oiadfaosuoianavMyClassNameionaernaldfajd
และ/(/&%%§%/(§(/MyClassName&((/$/$/(§/$&
และpublic class MyClassName { public static void main(String[] args) { } }
?
cut