Как 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 
  • Почему grep перезагружает компьютер?
  • результат фильтра сверху
  • Печатать шаблон в первом файле, когда есть совпадение во втором файле
  • Разделить двоичные данные фиксированного байтового смещения по байтовой позиции?
  • Совместить данные из двух разных файлов
  • «Grep-ing» от A до B в выводе hexdump
  • Grepping и sedding IP из ip addr show
  • grep caret, похоже, не имеет эффекта
  • grep для escape-кода ANSI
  • фильтровать данные по значению столбца
  • Новичок борется с grep, sed, awk для фильтрации html
  • Interesting Posts

    Linphone (3.9.1) компиляция ошибки с ./prepare.py –пакет в OS X El Capitan (10.11.4)

    Как может mutt указать присутствие всех вложений?

    Виртуальный хост работает только тогда, когда SELinux настроен на разрешительный – почему?

    Как сбросить значение имени файла bash для «больше»?

    BIND, просмотр и динамические обновления

    Как я могу остановить Z-оболочку от сговора, чтобы вмешаться в вывод GNU Make?

    Мощное оборудование, медленный Ubuntu

    Перенос ключей для рабочих областей в Xmonad

    Вызов программ Java без суффикса .class

    Как изменить настройки клавиатуры активного пользователя с помощью udev и setxkbmap?

    Как избежать использования 'ssh-add ~ / .ssh / id_rsa' для каждого нажатия на репозиторий github?

    Напечатайте что-нибудь в консоли в том же месте, что и предыдущий эхо, с неким отрицательным эхом

    Что делает опция -b при использовании команды `at`, если что?

    ProxyCommand используется для множественной пересылки и проверки подлинности запроса

    В чем опасность установки максимального предела максимальным дескрипторам файлов для каждого процесса?

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