Выбрать несколько строк linux

Peter Leung, «Командная строка: маленькие хитрости от Linux Commando»

Тому, кто пишет много скриптов bash, часто приходится выбирать нужные строки из текста, например готовые блоки кода. Вчера я как раз должен был извлечь первую строку из файла, назовем его somefile.txt.

$ cat somefile.txt Line 1 Line 2 Line 3 Line 4

Это очень просто сделать при помощи команды head:

$ head -1 somefile.txt Line 1

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

Давайте попробуем команду sed ≈ редактор потока (STream Editor).

Моя первая попытка применить команду p (print) оказалась неудачной:

$ sed 1p somefile.txt Line 1 Line 1 Line 2 Line 3 Line 4

Обратите внимание, что редактор печатает весь файл, причем указанную первую строку печатает дважды. Почему? По умолчанию редактор перепечатывает на стандартный вывод каждую строку вводимого файла. Четко заданная команда 1p приказывает печатать первую строку. В итоге первая строка дублируется.

Чтобы этого не происходило нужно подавить дефолтный вывод при помощи опции -n, чтобы на выводе был только результат команды 1p:

$ sed -n 1p somefile.txt Line 1

Можно пойти другим путем и удалить из файла все строки, кроме первой:

$ sed '1!d' somefile.txt Line 1

где ‘1!d’ означает: если строка не является первой (!), то подлежит удалению. Обратите внимания на кавычки (одинарные). Они совершенно необходимы, так как без них конструкция 1!d вызовет последнюю запускавшуюся в шелле команду, начинающуюся с буквы d.

Для извлечения нескольких строк, скажем, со второй по четвертую, можно поступить одним из следующих способов:

Интервал обозначается через запятую включительно.

А если строки не идут друг за другом, например, с первой по вторую и еще четвертую?

$ sed -n -e 1,2p -e 4p somefile.txt Line 1 Line 2 Line 4

Если вам известны иные способы выбирать нужные строки из файлов, сообщите, пожалуйста, в комментариях.

Читайте также:  Dcp l2540dnr драйвер linux

Послесловие переводчика:

Блестящий пример нестандартного подхода продемонстрировал в комментариях к этой статье некий Chris:

$ head -n 5 имя_файла | tail -n 1

А правда, здорово! И никаких заумных команд не надо с их километровыми манами. Кстати так и нужные блоки подряд идущих строк можно извлекать.

Источник

Вы спросили: как выбрать несколько строк в терминале Linux?

Нажмите Ctrl + D (Windows или Linux) или Command + D (Mac OS X), чтобы выбрать следующее вхождение слова. Повторяйте, пока не выберете слова, которые хотите изменить. Если вы зайдете слишком далеко & amp; выберите вхождение слова, которое вам не нужно, нажмите Ctrl + U (Windows или Linux) или Command + U (Mac OS X), чтобы отменить выбор этого слова.

Как набрать несколько строк в терминале?

Чтобы ввести несколько строк перед запуском любой из них, используйте Shift + Enter или Shift + Return после ввода строки. Это полезно, например, при вводе набора операторов, содержащих ключевые слова, например if… end. Курсор переместится на следующую строку, в которой не отображается подсказка, где вы можете ввести следующую строку.

Как выбрать строку в Linux-терминале?

Нажмите Ctrl + Shift + Пробел, чтобы активировать его. У него есть привязки клавиш, похожие на vim. v или V выберет визуальный режим à la vim, y будет дергать, Esc выйдет из режима выбора.

Как выбрать сразу несколько строк?

Чтобы выбрать более одной строки в окне просмотра данных, щелкните одну строку, затем , удерживая клавишу Control (Windows) или Command (Mac), выберите каждую из других строк, которые вы хотите редактировать или удалять. Чтобы выбрать непрерывный список, щелкните одну строку, затем, удерживая клавишу Shift, щелкните последнюю строку.

Как набрать несколько строк в Linux?

Как записать / добавить несколько строк в файл в Linux

  1. Метод 1: — Вы можете писать / добавлять содержимое построчно, используя многократное эхо команды. …
  2. Метод 2: — Вы можете добавить содержимое с помощью многострочной команды в цитируемый текст. …
  3. Метод 3: —

Как скопировать несколько строк в Linux?

Копирование и вставка нескольких строк

Поместив курсор на нужную строку, нажмите nyy, где n — количество строк вниз, которые вы хотите скопировать. Итак, если вы хотите скопировать 2 строки, нажмите 2yy. Чтобы вставить, нажмите p, и количество скопированных строк будет вставлено под линией, на которой вы сейчас находитесь.

Читайте также:  How to update linux mint

Как выбрать что-нибудь в Linux?

Как выделить весь текст в Linux? ​​

  1. Щелкните в начале текста, который нужно выделить.
  2. Прокрутите окно до конца текста, который вы хотите выделить.
  3. Shift + щелчок в конце вашего выбора.
  4. Теперь выделен весь текст между вашим первым щелчком и последним щелчком Shift + щелчок.

Что такое Ctrl O в Linux?

Ctrl + O: Выполните найденную команду с помощью Ctrl + R. Ctrl + G: выйти из режима поиска в истории без выполнения команды.

Как выбрать несколько строк в терминале Ubuntu?

Нажмите Ctrl + D (Windows или Linux) или Command + D (Mac OS X), чтобы выбрать следующее вхождение слова. Повторяйте, пока не выберете слова, которые хотите изменить. Если вы зайдете слишком далеко & amp; выберите вхождение слова, которое вам не нужно, нажмите Ctrl + U (Windows или Linux) или Command + U (Mac OS X), чтобы отменить выбор этого слова.

Как выбрать несколько строк в коде VS?

  1. Выберите строки, на которых вы хотите разместить несколько курсоров.
  2. Просто нажмите Alt + Shift — I.

Как выбрать несколько линий на ПК?

Чтобы выбрать несколько файлов в Windows 10 из папки, используйте клавишу Shift и выберите первый и последний файлы на концах всего диапазона, который вы хотите выбрать. Чтобы выбрать несколько файлов в Windows 10 со своего рабочего стола, , удерживая нажатой клавишу Ctrl, щелкайте каждый файл, пока не будут выбраны все.

Источник

Как найти несколько строк и шаблонов с помощью Grep

grep — это мощный инструмент командной строки, который позволяет вам искать в одном или нескольких входных файлах строки, соответствующие регулярному выражению, и записывать каждую совпадающую строку в стандартный вывод.

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

Grep несколько шаблонов

GNU grep поддерживает три синтаксиса регулярных выражений: базовый, расширенный и Perl-совместимый. Если тип регулярного выражения не указан, grep интерпретирует шаблоны поиска как базовые регулярные выражения.

Для поиска нескольких шаблонов используйте оператор OR (чередование).

Оператор чередования | (pipe) позволяет вам указать различные возможные совпадения, которые могут быть буквальными строками или наборами выражений. Этот оператор имеет самый низкий приоритет среди всех операторов регулярных выражений.

Читайте также:  Create disk image on linux

Синтаксис поиска нескольких шаблонов с использованием базовых регулярных выражений grep следующий:

grep 'pattern1|pattern2' file. 

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

При использовании основных регулярных выражений метасимволы интерпретируются как буквальные символы. Чтобы сохранить особые значения метасимволов, они должны быть экранированы обратной косой чертой ( ). Вот почему мы избегаем оператора ИЛИ ( | ) косой чертой.

Чтобы интерпретировать шаблон как расширенное регулярное выражение, вызовите grep с параметром -E (или —extended-regexp ). При использовании расширенного регулярного выражения не избегайте символа | оператор:

grep -E 'pattern1|pattern2' file. 

Для получения дополнительной информации о том, как создавать регулярные выражения, ознакомьтесь с нашей статьей Grep regex .

Grep несколько строк

Буквальные строки — это самые простые шаблоны.

В следующем примере мы ищем все вхождения слов fatal , error и critical в файле ошибок журнала Nginx :

grep 'fatal|error|critical' /var/log/nginx/error.log

Если искомая строка содержит пробелы, заключите ее в двойные кавычки.

Вот тот же пример с использованием расширенного регулярного выражения, которое избавляет от необходимости экранировать оператор |

grep -E 'fatal|error|critical' /var/log/nginx/error.log

По умолчанию grep чувствителен к регистру. Это означает, что символы верхнего и нижнего регистра рассматриваются как разные.

Чтобы игнорировать регистр при поиске, вызовите grep with параметром -i (или —ignore-case ):

grep -i 'fatal|error|critical' /var/log/nginx/error.log

При поиске строки grep отобразит все строки, в которых строка встроена в строки большего размера. Поэтому, если вы искали «error», grep также напечатает строки, где «error» встроено в слова большего размера, например, «errorless» или «antiterrorists».

Чтобы вернуть только те строки, в которых указанная строка представляет собой целое слово (заключенное в символы, отличные от слов), используйте параметр -w (или —word-regexp ):

grep -w 'fatal|error|critical' /var/log/nginx/error.log

Символы слова включают буквенно-цифровые символы (az, AZ и 0–9) и символы подчеркивания (_). Все остальные символы считаются несловесными символами.

Чтобы узнать больше о параметрах grep , посетите нашу статью Команда Grep .

Выводы

Мы показали вам, как использовать grep для поиска нескольких шаблонов, строк и слов.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Оцените статью
Adblock
detector