‘Tr’ в команде tr означает translation. Эта изящная команда используется для перевода одного типа символов в другой. Например, если вы хотите преобразовать текст во все верхние или нижние регистры, вы можете использовать команду tr.
Команда tr достаточно хороша для простого и быстрого перевода, но она не соответствует мощности команд awk или sed.
Команда tr имеет следующий синтаксис:
tr [options] charset1 [charset2]
Вот полезные опции для команды tr:
Давайте посмотрим, как использовать команду tr и ее параметры в различных случаях.
Одним из наиболее популярных применений команды tr является преобразование регистров. Позвольте нам сначала использовать команду cat для отображения текста в нашем файле sample.
destroyer@andreyex:~$ cat sample.txt Это моя жизнь Мой ник AndreyEx
Теперь, если вы хотите преобразовать текст во все заглавные буквы, вот что вам нужно сделать:
cat sample.txt | tr 'az' 'AZ'
Вот вывод вышеуказанной команды:
destroyer@andreyex:~$ cat sample.txt | tr ‘a-z’ ‘A-Z’ ЭТО МОЯ ЖИЗНЬ МОЙ НИК ANDREYEX
Вы также можете использовать классы символов здесь:
destroyer@andreyex:~$ cat sample.txt | tr [:lower:] [:upper:] ЭТО МОЯ ЖИЗНЬ МОЙ НИК ANDREYEX
Чтобы преобразовать текст во все строчные буквы, вам просто нужно поменять местами наборы символов:
cat sample.txt | tr 'AZ' 'az'
В приведенном выше примере вы преобразовали нижний регистр в верхний регистр. Таким же образом вы можете заменить один набор символов другим набором символов. Сопоставление выполняется по одному.
Позвольте нам объяснить с этим примером:
destroyer@andreyex:~$ cat sample.txt | tr ‘эми’ ‘слу’ Сто лоя жузнь Сой нук AndreyEx
В этом случае первый набор символов заменяется вторым набором для каждого символа. Здесь «э» заменяется на «с», «м» на «л» и «и» на «у».
Если второй набор меньше первого, последний символ второго набора повторяется. Другими словами, если бы вы использовали tr ‘эми’ ‘сл’, то и ‘м’, и ‘и’ были бы заменены на ‘л’.
Одним практическим примером этого метода может быть замена () на {} или замена подчеркивания (_) на тире (-), что-то вроде этого. Вы также можете конвертировать вкладки в пробелы в Linux таким же образом.
Если вы хотите удалить определенный символ или символы, вы можете использовать опцию -d команды tr:
destroyer@andreyex:~$ cat sample.txt | tr -d ‘оя’ Эт м жизнь Мй ник AndreyEx
В приведенном выше примере все экземпляры ‘о’ и ‘я’ были удалены. Если вы ожидали удаления только «оя», значит, вы ошиблись. Вот почему команда sed является гораздо лучшим вариантом, когда дело доходит до манипулирования текстом.
Предположим, ваш текст содержит несколько пробелов, и вы хотите заменить несколько пробелов одним пробелом.
Мы собираемся использовать команду echo для примера текста здесь:
destroyer@andreyex:~$ echo “В тексте слишком много пробелов” | tr -s ” “ В тексте слишком много пробелов
Вы также можете заменить несколько вхождений символов другим символом. Например, вы можете заменить все вхождения пробелов точкой с запятой (;).
destroyer@andreyex:~$ echo “В тексте слишком много пробелов” | tr -s ” ” “;” В;тексте;слишком;много;пробелов
Допустим, у вас есть текст, который содержит как буквы, так и цифры, и вы хотите сохранить только цифры. Вы можете использовать опцию дополнения -c и объединить ее с опцией удаления -d.
destroyer@andreyex:~$ echo “Номер телефона 123456789” | tr -cd [:digit:] 123456789
Опция -t полезна для усечения шаблона поиска. Предположим, что первый набор символов больше, чем второй набор символов. В этом случае последний символ во втором наборе заменяет все оставшиеся символы первого набора.
Позвольте нам объяснить это на следующем примере:
destroyer@andreyex:~$ cat sample.txt | tr ‘ояиз’ ’65’ Эт6 м65 ж55нь М6й н5к AndreyEx
В приведенном выше примере «о» заменяется на 6, а все я, и и з заменяются на 5. Если вы используете опцию усечения -t, он усекает первый набор символов в «оя», а остальные и и з будет нетронутым:
destroyer@andreyex:~$ cat sample.txt | tr -t ‘ояиз’ ’65’ Это м65 жизнь Мой ник AndreyEx
Там может быть множество других примеров команды tr в Unix/Linux. Эта статья объясняет некоторые примеры, которые используют различные опции команды. Вы можете использовать свое воображение и использовать их в самых разных ситуациях.
Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!
Спасибо! Ваша заявка принята
Спасибо! Ваша заявка принята