Bash: Команда tr

Bash logo Applications

"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.

Avatar for Gnostis
Gnostis
Добавить комментарий