Извлечь часть строки, используя grep

У меня есть 3 файла в каталоге

MYO144064T MYO144064TA MYO144064TX 

Если цифры и 11-й символ будут изменены. В моем сценарии csh я хочу извлечь буквы «A» и «X», вероятно, используя grep

Переменная $ study равна MYO144064

То, что я до сих пор сумел, очень громоздко

 ls | grep $study | cut -c 11 | sed 's/\///' 

Что дает мне

 A X 

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

3 Solutions collect form web for “Извлечь часть строки, используя grep”

 ls | grep -oP "(?<=$study.)[AZ]$" 

будет возвращать любую прописную букву, которой предшествует содержание $study плюс один произвольный символ ( T в вашем примере), а затем конец строки.

Параметр -P (регулярные выражения Perl) необходим, чтобы иметь возможность использовать положительное выражение lookbehind (?<=...) , но может быть недоступно для каждой системы и платформы.

 ls | grep $study | grep -o "[AX]$" 

возвращает только результат «A» или «X» в качестве последнего символа

Решение perl :

 $ perl -nle 'print chop if length == 11' file A X 

Или если вы можете использовать bash :

 while read var do [ ${#var} -eq 11 ] && echo ${var:(-1)} done < file 
  • Подсчет последовательных повторений определенного символа (например,)
  • sed специальный символ заменить не работает в сценарии оболочки
  • Использование здесь-doc для `sed` и файла
  • Как удалить новые строки из ip в качестве вывода?
  • заменяя многострочную строку другой многострочной строкой, используя sed
  • добавить обратную косую черту перед конкретным символом
  • Как я могу напечатать вторую в последнюю строку множество файлов в один файл?
  • Sed целое слово с заменой отдельных букв, с BSD sed?
  • Как заменить строку в файле другим файлом?
  • разбиение файла на строки, разделенные вкладками на два файла
  • Как удалить количество строк из файла повторно
  • Interesting Posts

    Мне нужно подключиться к пользователю IPA и запустить программу как root без паролей

    Ошибка: зависимость не подлежит удовлетворению: libqtcore5a (> = 5.7.0)

    Выполнение удаленной команды в SSH-соединении, перед входом в систему

    Будет ли я разорвать свою систему, если я настойчиво использую ПК с установленной тройной загрузкой (Win8, Ubuntu & Kali)

    Развертывание libs в жестко закодированном каталоге

    Локальная почтовая раковина

    btrfs баланс слишком длинный

    Недавно установленные приложения отсутствуют в $ PATH

    Можно ли удалить «ssh: //» из URL-адресов git remote?

    как перечислить все диапазоны IP в Интернете?

    nc не ждет отключение сервера на OS X

    Печать групп соответствия с grep

    Как восстановить эту ошибку клиента NIS и NFS?

    Скрипт для изменения cronjob

    CentOS – действует ненормально каждую неделю и приводит к отключению всей моей настройки, как я могу откат / восстановление до одной недели?

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