Поиск по сайту:

10 примеров команд в Linux


tr (сокращение от translate) — полезная утилита командной строки, которая переводит и/или удаляет символы из ввода стандартного ввода и записывает их в стандартный вывод. Это полезная программа для управления текстом в командной строке.

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

Синтаксис запуска команды tr следующий: символы в SET1 преобразуются в символы в SET2.

tr flags [SET1] [SET2]

Примеры команд tr в Linux

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

$ cat linux.txt

linux is my life
linux has changed my life
linux is best and everthing to me..:)
$ cat linux.txt | tr [:lower:] [:upper:]

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

2. Альтернативно вы можете использовать следующую команду, чтобы изменить все строчные буквы на прописные в файле, как показано.

$ cat linux.txt | tr [a-z] [A-Z]

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

3. Чтобы сохранить результаты, записанные в stdout, в файле для последующей обработки, используйте функцию перенаправления вывода оболочки (>), как показано.

$ cat linux.txt | tr [a-z] [A-Z] >output.txt
$ cat output.txt 

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

4. Что касается перенаправления, вы можете отправить входные данные в tr, используя перенаправление ввода, и перенаправить выходные данные в файл, используя ту же команду, как показано.

$ tr [a-z] [A-Z] < linux.txt >output.txt

5. Еще одна полезная функция: вы можете использовать флаг -d для удаления символов, например, для удаления пробелов в именах доменов с помощью следующей команды.

$ cat domains.txt

www. tecmint. com
www. fossmint. com
www. linuxsay. com
$ cat domains.txt | tr -d '' 

linux-console.net
www.fossmint.com
www.linuxsay.com

6. Если в обрабатываемом тексте есть повторяющиеся символы (например, двойные пробелы), вы можете использовать параметр -s, чтобы сжать символы, оставив только один такой случай.

$ cat domains.txt

www.tecmint.....com
www.fossmint.com
www.linuxsay.com
$ cat domains.txt | tr -s '' 

linux-console.net
www.fossmint.com
www.linuxsay.com

7. Опция -c указывает tr использовать дополнение в заданном SET. В этом примере мы хотим удалить все буквы и оставить только UID.

$ echo "My UID is $UID" | tr -cd "[:digit:]\n"
OR
$ echo "My UID is $UID" | tr -d "a-zA-Z"

8. Вот пример разбиения одной строки слов (предложения) на несколько строк, где каждое слово отображается отдельно.

$ echo "My UID is $UID"

My UID is 1000

$ echo "My UID is $UID" | tr " "  "\n"

My 
UID 
is 
1000

9. Как и в предыдущем примере, вы также можете перевести несколько строк слов в одно предложение, как показано.

$ cat uid.txt

My 
UID 
is 
1000

$ tr "\n" " " < uid.txt

My UID is 1000

10. Также возможно преобразовать только один символ, например пробел, в символ “ : ”, как показано ниже.

$ echo "linux-console.net =>Linux-HowTos,Guides,Tutorials" | tr " " ":"

linux-console.net:=>Linux-HowTos,Guides,Tutorials

С tr можно использовать несколько символов последовательности. Дополнительную информацию см. на странице руководства tr.

man tr

Вот и все! tr — полезная команда для управления текстом в командной строке. В этом руководстве мы показали несколько полезных примеров использования команды tr для новичков в Linux. Вы можете поделиться с нами своими мыслями через форму комментариев ниже.