Хто використовує Лінукс (не важливо який саме дистрибутив) в роботі або на домашньому ПК, можуть ефективно автоматизувати рутинні завдання. Наприклад, в цій статті я розповім як можна швидко знайти якусь рядок в купі файлів.
Як знайти рядок у файлах на лінукс?
У цьому нам допоможе утиліта командного рядка під назвою grep. Вона шукає рядки, які відповідають регулярному виразу і виводить їх на консоль.
Зверніть увагу на наступне
- Використовуйте дужки, якщо рядок містить прогалини «текст команди«.
- Пам'ятайте про прогалини між розширеннями
- Не використовуйте фігурні дужки для одного розширення -> java
Нижче представлені найбільш корисні команди, які я використовую в повсякденній роботі, а також інші працюють команди, знайдені на просторах Інтернету:
Простий пошук рядка у файлі
Структура команди: grep рядок названіеФайла
Приклад використання: grep name file.txt
Пошук рядка в файлі ігноруючи чутливість до регістру
Структура команди: grep рядок названіеФайла
Приклад використання: grep -i name file.txt
Знайти рядок в поточній директорії
Структура команди: grep рядок.
Приклад використання: grep name.
Знайти рядок рекурсивно
Структура команди: grep -r рядок.
Приклад використання: grep -r name.
Знайти файли, які не містити певну рядок
Структура команди: grep -L рядок *
Приклад використання: grep -L "foo" *
Рекурсивно знайти рядок тільки в певних файлах
grep рядок -r. -include = *. расшіреніеФайла
Приклад використання: grep "name = Main" -r. --include = *. java
Зверніть увагу! Ці команди буду шукати тільки в тих файлах, які ви визначили в секції -include = *.
Рекурсивно знайти рядок крім певних розширень
Приклад використання: grep "Serializable" -r. --exclude = *.
Рекурсивно знайти лінія у певна розширеннях, виключаючи зазначені
grep рядок -r. -include = *. расшіреніеФайла -exclude = *. расшіреніеФайла2
Приклад використання: grep "name = Main" -r. --include = *. --exclude = *. java
Зверніть увагу! Команда вище не шукатиме в файлах з розширенням .java
Шукайте інші корисності в спеціальному розділі.