Sed: Изменить регистр группы замещения - PullRequest
8 голосов
/ 23 апреля 2009

Как изменить регистр соответствующей группы с нижнего на верхний с помощью команды sed Unix?

Спасибо Martin

Ответы [ 3 ]

14 голосов
/ 29 ноября 2009

Окружите ваш соответствующий шаблон в скобках, например: \ (шаблон \), а затем используйте \ U \ 1 в качестве текста замены. \ 1 - соответствующий шаблон, а \ U вводит прописные буквы.

echo abcdef | sed -e 's/\(abc\)/\U\1/'
3 голосов
/ 23 апреля 2009

Запустить через tr?

Шучу. Вы можете использовать преобразование y /// для изменения регистра. Это не очень удобно, но это функционально. Если ваше преобразование становится слишком сложным, вы можете рассмотреть возможность перехода к Perl.

1 голос
/ 09 мая 2009

Я знаю, что это уравновешенный вопрос, просто хотел отметить, что есть несколько способов сделать эту функцию. awk - это инструмент, созданный для обработки текста, и в некоторых случаях его проще использовать. На мой взгляд, это один из следующих моментов:

#!/bin/sh
INFO="This is a test"
ALLCAPS=`echo $INFO | awk '{print toupper($0)}'`
echo $ALLCAPS

Урожайность: это тест

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...