Я часто використовую 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