Как grep для алфавитов, за которыми следует пробел и знак препинания?

У меня есть строка, называемая

10909101 - testingName - Log8767, File787 - 8:50PM 

Теперь я просто хочу использовать grep для получения testingName качестве моего вывода.

Первое число может меняться в зависимости от количества цифр (другая строка может содержать 12 в качестве первого номера), поэтому я не могу использовать grep на основе числа. Итак, как я могу это решить?

2 Solutions collect form web for “Как grep для алфавитов, за которыми следует пробел и знак препинания?”

Учитывая, что все данные будут одинаково отформатированы, grep – неправильный инструмент для этого. Это полезно, конечно, но использование этого – kludge – это не то, для чего был разработан grep , и намного лучший инструмент – awk .

Поскольку ваш разделитель всегда будет «пространством, тире, пространством», т. Е. Вы можете сделать это:

 $ awk -F' - ' '{print $2}' <filename> 

где <filename> – это имя файла с данными, которые вы ищете, и вы получите все строки из всего файла, обрезанные только на вторую запись. Если вам не нравится использовать трехсимвольный разделитель, вы можете сделать это:

 $ awk -F- '{print $2}' | tr -d ' ' 

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

Это использует два экземпляра grep , но это чистый grep :

 echo '10909101 - testingName - Log8767, File787 - 8:50PM ' | \ grep -o '\- [[:alpha:]]* \-' | grep -o '[[:alpha:]]*' 

Вывод:

 testingName 
  • Как определить, какой файл .log содержит ошибку?
  • Список всех обычных файлов, содержащих (в их имени, каталоге или их содержимом) определенную (под) строку
  • Grep для ближайшего появления строки перед рисунком
  • Почему сопоставление 1250 строк против 90k моделей так медленно?
  • Как сделать вертикальную полосу | работа в grep?
  • Оптимизация сценария оболочки с длительным циклом работы
  • Решение целочисленного выражения ожидается
  • extract включить в файл C
  • Почему grep перезагружает компьютер?
  • Рекурсивно подсчитывать количество слов в одинаково именованных файлах в разных каталогах
  • Как извлечь из linux некоторые группы захвата, используя командную строку в режиме php / preg?
  • Interesting Posts

    поврежденные архивы пакетов debian на самодельных пакетах баз данных

    Как получить последнюю оболочку GNOME в Fedora?

    как определить клиентские сокеты для удаленных серверов, открытых во время выполнения программы

    Точка доступа настраивается через Linux

    scp (v4) копирование с удаленного на несколько локальных имен файлов

    Возможно, быстрее быстрее, чем скорость света?

    Не могу понять, почему epel не появляется на реплике yum

    Когда вилки процесса являются копией его виртуальной или резидентной памяти?

    Что делают «snapper mount» и «snapper umount»?

    Arch Linux, монтируйте диски с помощью thunar, без пароля

    Драйверы видеокарты Nvidia для совместимости с Linux

    Распределение Linux для Nintendo DS Lite

    Удалите функцию зашифрованного LVM, чтобы удалить введенный запрос пароля во время загрузки Ubuntu

    Как скобки интерпретируются в командной строке?

    Как перенести виртуальную машину IDE в виртуальную виртуальную машину?

    Linux и Unix - лучшая ОС в мире.