Android

Пробовал команду в linux с примерами

?? Subway Surfers - Official Launch Trailer

?? Subway Surfers - Official Launch Trailer

Оглавление:

Anonim

tr - это утилита командной строки в системах Linux и Unix, которая переводит, удаляет и сжимает символы из стандартного ввода и записывает результат в стандартный вывод.

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

В этом руководстве мы покажем вам, как использовать команду tr на практических примерах и подробных объяснениях наиболее распространенных опций.

Как использовать команду tr

Синтаксис команды tr выглядит следующим образом:

tr OPTION… SET1

tr принимает два набора символов, обычно одинаковой длины, и заменяет символы первого набора соответствующими символами из второго набора.

SET - это, в основном, строка символов, включая специальные символы с обратной косой чертой.

В следующем примере tr заменит все символы из стандартного ввода (linuxize) путем сопоставления символов из первого набора с соответствующими из второго набора.

echo 'linuxize' | tr 'lin' 'red'

Каждое вхождение l заменяется на r , i на e , а n на d :

reduxeze

Наборы символов также могут быть определены с использованием диапазонов символов. Например, вместо того, чтобы писать:

echo 'linuxize' | tr 'lmno' 'wxyz'

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

echo 'linuxize' | tr 'ln' 'w-z'

Когда используется опция -c ( --complement ), tr заменяет все символы, которых нет в SET1.

В приведенном ниже примере все символы, кроме «li», будут заменены последними символами из второго набора:

echo 'linuxize' | tr -c 'li' 'xy'

liyyyiyyy

Как вы могли заметить, вышеприведенный вывод имеет еще один видимый символ, чем ввод. Это потому, что команда echo выводит невидимый символ новой строки который также заменяется на y . Чтобы отобразить строку без новой строки, используйте параметр -n .

Опция -d ( --delete ) указывает tr удалить символы, указанные в SET1. При удалении символов без сжатия указывайте только один набор.

Команда ниже удалит символы l , i и z :

echo 'Linuxize' | tr -d 'liz'

Символ L не удаляется, потому что ввод включает в себя заглавные буквы L а символ l в SET строчные.

Lnuxe

Опция -s ( --squeeze-repeats ) заменяет последовательность повторяющихся вхождений набором символов в последнем SET.

В следующем примере tr удаляет повторяющиеся пробелы:

echo "GNU \ Linux" | tr -s ' '

GNU \ Linux

Когда используется SET2, последовательность символов, указанная в SET1, заменяется на SET2.

echo "GNU \ Linux" | tr -s ' ' '_'

GNU_\_Linux

Опция -t ( --truncate-set1 ) заставляет tr урезать SET1 до длины SET2 перед дальнейшей обработкой.

По умолчанию, если SET1 больше, чем SET2, tr будет использовать последний символ SET2. Вот пример:

echo 'Linux ize' | tr 'abcde' '12'

Вывод показывает, что символ e из SET1 сопоставляется с последним символом SET2, который равен 2 :

Linux iz2

Теперь используйте ту же команду с параметром -t :

echo 'Linux ize' | tr -t 'abcde' '12'

Linux ize

Вы можете видеть, что последние три символа SET1 удалены. SET1 становится 'ab', такой же длины, как SET2, и замена не производится.

Объединение вариантов

Команда tr также позволяет комбинировать ее параметры. Например, следующая команда сначала заменяет все символы, кроме i на 0 а затем сжимает повторяющиеся символы 0 :

echo 'Linux ize' | tr -cs 'i' '0'

0i0i0

Примеры команд Tr

В этом разделе мы рассмотрим несколько примеров общего использования команды tr .

Преобразовать нижний регистр в верхний регистр

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

echo 'Linuxize' | tr '' ''

LINUXIZE

Вместо классов персонажей вы также можете использовать диапазоны:

echo 'Linuxize' | tr 'az' 'A-Z'

Чтобы преобразовать верхний регистр в нижний регистр, просто поменяйте местами наборы.

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

Следующая команда удаляет все нечисловые символы:

echo "my phone is 123-456-7890" | tr -cd

обозначает все цифры, и с помощью опции -c команда удаляет все нецифровые символы. Вывод будет выглядеть так:

1234567890

Поместите каждое слово в новую строку

Чтобы поместить каждое слово в новую строку, нам нужно сопоставить все не алфавитно-цифровые символы и заменить их новой строкой:

echo 'GNU is an operating system' | tr -cs '' '\n'

GNU is an operating system

Удалить пустые строки

Чтобы удалить пустые строки, просто сожмите повторяющиеся символы новой строки:

tr -s '\n' < file.txt > new_file.txt

В приведенной выше команде мы используем символ перенаправления < чтобы передать содержимое file.txt команде tr . Перенаправление > записывает выходные данные команды в new_file.txt .

Вывести каталоги $PATH на отдельной строке

Переменная окружения $PATH - это список каталогов, разделенных двоеточиями, который указывает оболочке, в каких каталогах искать исполняемые файлы при вводе команды.

Чтобы напечатать каждый каталог в отдельной строке, нам нужно сопоставить двоеточие (:) и заменить его новой строкой:

echo $PATH | tr ':' '\n'

/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin

Вывод

tr - это команда для перевода или удаления символов.

Хотя tr очень полезен, он может работать только с одиночными символами. Для более сложного сопоставления с образцом и работы со строками, вы должны использовать sed или awk .

tr терминал