Рекурсивный поиск содержимого файла с помощью grep
Рекурсивный поиск содержимого файла с помощью grep
1. Греп Введение в команду

grep (регулярное выражение глобального поиска (RE) и распечатка строки) — мощный инструмент текстового поиска, который может находить текстовые строки, соответствующие регулярному выражению, в одном или нескольких файлах и выводить строку. Команда grep — очень важный инструмент в операционных системах Linux и Unix.

Команда grep обычно используется для сканирования файлов, она может найти определенную строку в любом текстовом файле. Команда grep предоставляет большое количество параметров, которые можно использовать для различных операций поиска.

Самая распространенная операция команды grep — поиск строки в файле. Например, чтобы найти все строки в файле, содержащие строку «привет», вы можете использовать следующую команду:

Язык кода:javascript
копировать
grep "hello" file.txt

Эта команда сопоставит все строки, содержащие «привет» в файле file.txt, и выведет их на стандартный вывод.

2. Grep рекурсивно ищет содержимое файла.

Если вам нужно выполнить поиск строки в каталоге и его подкаталогах, вы можете использовать опцию «-r» в команде grep. Например, чтобы найти все файлы, содержащие строку «привет» в каталоге «/home», вы можете использовать следующую команду:

Язык кода:javascript
копировать
grep -r "hello" /home

Эта команда будет рекурсивно искать файлы в каталоге /home и всех его подкаталогах, затем найдет строки, содержащие «привет» в соответствующих файлах, и выведет их на стандартный вывод.

3. Игнорировать указанные файлы, когда grep рекурсивно ищет содержимое файла.

При рекурсивном поиске содержимого файла иногда необходимо игнорировать определенные файлы, например определенные двоичные файлы или временные файлы. В настоящее время вы можете использовать опцию «--exclude» в команде grep.

Например, при рекурсивном поиске всех файлов, содержащих строку «hello», в каталоге «/home» вам необходимо игнорировать все файлы с суффиксом «.pdf». Вы можете использовать следующую команду:

Язык кода:javascript
копировать
grep -r --exclude='*.pdf' "hello" /home

Эта команда будет игнорировать все файлы с суффиксом «.pdf» при поиске.

4. Отображение количества совпадающих строк при рекурсивном поиске содержимого файла.

Если вам нужно подсчитать количество совпадающих строк в каждом искомом файле, вы можете использовать опцию «-c» в команде grep. Например, чтобы рекурсивно выполнить поиск всех файлов, содержащих строку «hello», в каталоге «/home» и отобразить количество совпадающих строк, вы можете использовать следующую команду:

Язык кода:javascript
копировать
grep -r -c "hello" /home

Эта команда будет рекурсивно искать файлы в каталоге /home и во всех его подкаталогах, затем подсчитает количество совпадающих строк, содержащихся во всех совпавших файлах, и выведет их на стандартный вывод.

5. Рекурсивный поиск содержимого файла и отображение содержимого до и после совпадающих строк.

Если вам нужно отобразить определенное количество текста до и после соответствующей строки, вы можете использовать параметры «-B» и «-A» в команде grep. Эти две опции используются для определения количества строк, которые необходимо отобразить до и после соответствующей строки.

Например, при рекурсивном поиске всех файлов, содержащих строку «hello», в каталоге «/home» вам необходимо отобразить 4 строки текста до и после каждой соответствующей строки. Вы можете использовать следующую команду:

Язык кода:javascript
копировать
grep -r -B 4 -A 4 "hello" /home

Эта команда отобразит 4 строки текста до и после каждой соответствующей строки.

6. Общие параметры команды grep

Помимо вышеперечисленных параметров, команда grep также имеет множество общих параметров. Вот некоторые распространенные параметры:

  • -i:Игнорировать регистр。
  • -v:обратное совпадение,Показать все несовпадающие строки.
  • -l:Выводить только имена совпадающих файлов.,Совпадения не выводятся.
  • -n:Показывать номер строки перед сопоставлением строк。
  • -w:сопоставить целое слово。
  • -E:Используйте расширенные регулярные выражения。

7. Резюме

Команда grep — очень мощный инструмент текстового поиска, который может выполнять различные задачи текстового поиска в операционных системах Linux и Unix. В реальной работе нам обычно нужно рекурсивно искать содержимое файлов в каталоге, игнорировать указанные файлы, отображать количество совпадающих строк и отображать определенное количество текстового контента до и после совпадающих строк. Могут встречаться параметры grep, представленные выше. эти потребности.

Владея командой grep, вы сможете быстро решать различные задачи по текстовому поиску и повысить эффективность работы.

boy illustration
RasaGpt — платформа чат-ботов на основе Rasa и LLM.
boy illustration
Nomic Embed: воспроизводимая модель внедрения SOTA с открытым исходным кодом.
boy illustration
Улучшение YOLOv8: EMA основана на эффективном многомасштабном внимании, основанном на межпространственном обучении, и эффект лучше, чем у ECA, CBAM и CA. Малые цели имеют очевидные преимущества | ICASSP2023
boy illustration
Урок 1 серии Libtorch: Тензорная библиотека Silky C++
boy illustration
Руководство по локальному развертыванию Stable Diffusion: подробные шаги и анализ распространенных проблем
boy illustration
Полностью автоматический инструмент для работы с видео в один клик: VideoLingo
boy illustration
Улучшения оптимизации RT-DETR: облегченные улучшения магистрали | Support Paddle облегченный rtdetr-r18, rtdetr-r34, rtdetr-r50, rtdet
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | Деформируемое внимание с большим ядром (D-LKA Attention), большое ядро ​​​​свертки улучшает механизм внимания восприимчивых полей с различными функциями
boy illustration
Создано Datawhale: выпущено «Руководство по тонкой настройке развертывания большой модели GLM-4»!
boy illustration
7B превышает десятки миллиардов, aiXcoder-7B с открытым исходным кодом Пекинского университета — это самая мощная модель большого кода, лучший выбор для корпоративного развертывания.
boy illustration
Используйте модель Huggingface, чтобы заменить интерфейс внедрения OpenAI в китайской среде.
boy illustration
Оригинальные улучшения YOLOv8: несколько новых улучшений | Сохранение исходной информации — алгоритм отделяемой по глубине свертки (MDSConv) |
boy illustration
Второй пилот облачной разработки | Быстро поиграйте со средствами разработки на базе искусственного интеллекта
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция с нулевым кодированием и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
Решенная Ошибка | Загрузка PyTorch медленная: TimeoutError: [Errno 110] При загрузке факела истекло время ожидания — Cat Head Tiger
boy illustration
Brother OCR, библиотека с открытым исходным кодом для Python, которая распознает коды проверки.
boy illustration
Новейшее подробное руководство по загрузке и использованию последней демонстрационной версии набора данных COCO.
boy illustration
Выпущен отчет о крупной модели финансовой отрасли за 2023 год | Полный текст включен в загрузку |
boy illustration
Обычные компьютеры также могут работать с большими моделями, и вы можете получить личного помощника с искусственным интеллектом за три шага | Руководство для начинающих по локальному развертыванию LLaMA-3
boy illustration
Одной статьи достаточно для анализа фактора транскрипции SCENIC на Python (4)
boy illustration
Бросая вызов ограничениям производительности небольших видеокарт, он научит вас запускать большие модели глубокого обучения с ограниченными ресурсами, а также предоставит полное руководство по оценке и эффективному использованию памяти графического процессора!
boy illustration
Команда Fudan NLP опубликовала 80-страничный обзор крупномасштабных модельных агентов, в котором в одной статье представлен обзор текущего состояния и будущего агентов ИИ.
boy illustration
[Эксклюзив] Вы должны знать о новой функции JetBrains 2024.1 «Полнострочное завершение кода», чтобы решить вашу путаницу!
boy illustration
Краткое изложение базовых знаний о регистрации изображений 1.0
boy illustration
Новейшее подробное руководство по установке и использованию библиотеки cv2 (OpenCV, opencv-python) в Python.
boy illustration
Легко создайте локальную базу знаний для крупных моделей на основе Ollama+AnythingLLM.
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание решения. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Одна статья поможет вам понять RAG (Retrival Enhanced Generation) | Введение в концепцию и теорию + практику работы с кодом (включая исходный код).
boy illustration
Эволюция архитектуры шлюза облачной разработки
boy illustration
Docker и Kubernetes [Разработка контейнерных приложений с помощью Python]