Saya sering menggunakan grep untuk menemukan file yang memiliki entri tertentu seperti ini:
grep -R 'MyClassName'
Hal baiknya adalah ia mengembalikan file, isinya, dan menandai string yang ditemukan berwarna merah. Yang buruk adalah bahwa saya juga memiliki file besar di mana seluruh teks ditulis dalam satu baris tunggal besar. Sekarang grep output terlalu banyak ketika menemukan teks di dalam file-file besar itu. Apakah ada cara untuk membatasi output misalnya 5 kata ke kiri dan ke kanan? Atau mungkin membatasi output hingga 30 huruf ke kiri dan ke kanan?
cut
, karena hanya dibagi oleh pembatas atau dengan jumlah karakter. Padahal ketika saya menemukan garis MyClassName
dengannya mungkin ada di mana saja di baris tersebut dan tidak selalu pada posisi yang sama. Selain itu, mungkin ada variasi karakter di bagian depan dan belakang, yang mematahkan kemungkinan untuk dipisah oleh pembatas.
MyClassName
telah ditemukan, saya ingin mendapatkan sebagai hasilnya nama file dan karakter x ke kiri dan ke kanan. x adalah nomor apa pun yang saya berikan, misalnya 30. Sisa dari isi file akan diabaikan. Ini untuk mendapatkan konteks ke file yang cocok dan membatasi kelebihan.
cut
jika ada tiga file dengan input berikut: oiadfaosuoianavMyClassNameionaernaldfajd
dan /(/&%%§%/(§(/MyClassName&((/$/$/(§/$&
dan public class MyClassName { public static void main(String[] args) { } }
?
cut