Bash: Команда tr

"tr" - это очень полезная команда UNIX. Она используется для преобразования строк или удаления символов из строки. С помощью этой команды можно выполнять различные виды преобразований, например, поиск и замену текста, преобразование строки из верхнего регистра в нижний или наоборот, удаление повторяющихся символов из строки и т.д. Команда может быть использована и для некоторых сложных преобразований. Различные варианты использования команды "tr" показаны в этом уроке.

Синтаксис

Опция и stringValue2 являются необязательными для команды `tr`. Вы можете использовать опции -c, -s и -d с командой `tr` для выполнения различных типов задач.

Изменение регистра

Вы можете очень легко изменить регистр строки с помощью команды tr. Для определения верхнего регистра вы можете использовать [:upper:] или [A-Z], а для определения нижнего регистра - [:lower:] или [a-z].

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

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

Выполните следующую команду, чтобы преобразовать все строчные буквы строки 'string' в заглавные.

После выполнения приведенной выше команды появится следующий результат. Строка 'string' преобразовалась в строку 'STRING'.

Вы можете применить команду `tr` для преобразования содержимого любого текстового файла из верхнего в нижний или из нижнего в верхний. Предположим, у вас есть текстовый файл items.txt со следующим содержимым.

Выполните следующие команды из терминала для отображения содержимого файла items.txt и вывода команды `tr` после преобразования содержимого этого файла из нижнего регистра в верхний. Команда `tr` не изменяет исходное содержимое файла.

Вывод

Вы можете выполнить следующую команду, чтобы сохранить вывод команды `tr` в другой файл с именем 'output.txt'.

Перенос строк

Команда `tr` может быть использована для поиска и замены любого определенного символа в любом тексте. Следующая команда используется для преобразования каждого пробела в тексте "Welcome to Linux" в новую строку (\n).

Вывод:

После выполнения приведенной выше команды появится следующий результат. Каждое слово текста напечатано в каждой строке.

Использование опции -c (-complement)

Команду `tr` можно использовать с опцией -c для замены вторым символом тех символов, которые не совпадают со значением первого символа. В следующем примере команда `tr` используется для поиска тех символов в строке 'bash', которые не совпадают с символом 'b', и замены их на 'a'. На выходе получится 'baaaa'. Здесь преобразуются четыре символа. Это ,'a','s','h' и '\n'.

После выполнения вышеуказанной команды появится следующий результат.

Использование опции -s

Команда `tr` использует опцию -s (-squeeze-repeats) для поиска и замены любой строки в тексте. В следующем примере пробел (' ') заменяется на табуляцию ('\t').

Вывод:

После выполнения приведенной выше команды появится следующий результат. Здесь пробел был заменен пробелом табуляции.

Вы можете использовать опции -c и -s вместе с командой `tr`. В следующем примере в качестве первого строкового значения использован диапазон строчных букв. Для опции -c команда `tr` будет искать и заменять символы, не являющиеся строчными буквами, на новую строку ('\n') в файле items.txt и сохранять результат команды в файле output.txt.

Использование опции -d (-delete)

Опция -d используется с командой `tr` для поиска и удаления любого символа или строки из текста. В следующем примере команда `tr` выполнит поиск 'P', 'y' и 't' в строке "Python - это язык программирования" и удалит эти символы.

Вывод:

После выполнения приведенной выше команды появится следующий результат. В выводе удалены символы 'P', 'y' и 't'.

Опцию -c можно использовать вместе с опцией -d в команде `tr` для дополнения поиска, как в предыдущей команде -cs. В следующем примере команда `tr` с опцией -cd выполнит поиск всех нецифровых символов из строки "Phone No: 985634851" с использованием числового диапазона и удалит их.

Вывод:

После выполнения приведенной выше команды появится следующий результат. Вывод содержит только числовую часть строки.

Аналогично, вы можете использовать опцию -cd в команде `tr`, как в следующей команде, чтобы удалить непечатаемые символы из файла. '\n' - это непечатаемый символ, который будет удален из файла items.txt.

Вывод:

После выполнения приведенной выше команды появится следующий вывод. Вывод содержит содержимое файла items.txt после удаления символа новой строки (\n).

Удаление всех нечисловых символов

Команду `tr` можно также использовать для удаления всех нечисловых символов из текста, используя в команде [0-9] или [:digit:]. Выполните следующую команду, чтобы удалить все нечисловые символы из текста, используя класс [:digit:].

Вывод:

После выполнения приведенных выше команд появится следующий результат. Вывод содержит только цифры.

Печать значения $LS_COLORS в отдельной строке на основе разделителя

Любая переменная окружения со списком значений, разделенных двоеточием(:), может быть выведена в отдельные строки с помощью команды `tr`. $LS_COLORS - это переменная окружения, содержащая значения ключа и цвета, разделенные двоеточием. Выполните следующую команду для печати каждой пары ключа и цвета в каждой строке.

Вывод:

После выполнения приведенных выше команд появится следующий результат:

Преобразование содержимого файла на основе разделителя

Создайте текстовый файл с именем "students.txt" со следующим содержимым. Двоеточие(:) было использовано в качестве разделителя в каждой строке этого файла.
students.txt

Выполните следующие команды для печати исходного содержимого текстового файла, создания файла output.txt путем преобразования двоеточия(:) файла students.txt в '\t' и печати содержимого файла output.txt.

Вывод:

После выполнения приведенных выше команд появится следующий результат. Файл output.txt содержит преобразованное содержимое файла students.txt.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий