Команди Linux

Команда Linux tr

Команда Linux tr
У Linux "tr" - це вбудований інструмент, який може "перекладати, стискати та / або видаляти символи зі стандартного вводу, записуючи до стандартного виводу" (зі сторінки користувача).

З офіційного опису легко зрозуміти цінність цього інструменту. Linux пропонує велику колекцію вбудованих інструментів. Є кілька спеціальних, які надзвичайно корисні для обробки тексту. Ми вже розглянули ряд таких, як Vim, Nano, awk, sed та інші інструменти.

Тим, хто регулярно працює з текстами, "tr", безумовно, буде дуже, дуже корисним. Ця стаття проілюструє найбільш поширене вживання “tr” на достатніх прикладах.

Примітка: У підручнику буде використано тонну фіктивних файлів із випадковим вмістом. Всі випадкові рядки генеруються Випадкові.орг.

Розташування

який тр

Це повний шлях інструменту команди “tr”.

Основне використання

Для використання інструменту “tr” вам слід використовувати таку структуру команд.

тр [SET1] [SET2]

Існують різні варіанти та способи маніпулювання текстами за допомогою “tr”. Спочатку давайте перевіримо цей демонстраційний файл.

демонстрація котів.txt

Усі символи в нижньому регістрі, праворуч? Давайте перетворимо їх на великі літери!

демонстрація котів.txt | tr [: нижній:] [: верхній:]

Тут перший параметр "tr" вказує на виконання перекладу для всіх малих символів введення. Друга частина говорить про перетворення їх у верхній регістр на виході.

А тепер давайте зробимо все навпаки.

демонстрація котів1.txt

демонстрація котів1.txt | tr [: верхній:] [: нижній:]

Існує також інший спосіб виконання цього самого завдання. Давайте перевіримо це.

демонстрація котів.txt | tr [a-z] [A-Z]

Тепер, замість того, щоб говорити “tr”, щоб перекласти великі регістри в малі або малі регістри у великі, ми сказали визначити записи, що відповідають діапазону “a” до “z”, і перевести їх еквівалент із діапазону “A” на “Z”.

Цей подібний метод також може бути використаний для перекладу великої та малої літер.

демонстрація котів1.txt | tr [A-Z] [a-z]

Гра з цифрами

Ми бачили, як перекласти велику літеру на малу, справа? Пора пограти з цифрами.

За допомогою наступної команди ми можемо легко перевести всі цифри (0-9) в їх еквівалентні символи!

cat demo_digit.txt

cat demo_digit.txt | tr [0-9] [a-z]

Приголомшливо! Як щодо великих?

cat demo_digit.txt | tr [0-9] [A-Z]

Просто, але цікаво, правильно? Ми також можемо перетворити символи в цифри!

cat demo_lowercase.txt

cat demo_lowercase.txt | tr [a-z] [0-9]

О, о, здається, все зламалося, так? Ну, ми можемо використовувати лише "a" до "j" для представлення одноцифрових цифр. Якщо є який-небудь символ, який вийшов за межі, “tr” замінить символ на “]”.

Видалення символів

Як випливає з офіційного опису, “tr” може робити не лише переклад символів. У наступному прикладі ми перевіримо, як використовувати “tr” для видалення певних символів.

кішка випадкова.txt

Тепер видалимо всі цифри зі змісту.

кішка випадкова.txt | tr -d [0-9]

Тут прапорець "-d" означає "tr" видалити, а [0-9] означає цифри для видалення.

Ми також можемо зробити це з героями. Наступна команда збереже всі цифри, але видалить всі символи.

кішка випадкова.txt | tr -d [a-z]

Як щодо видалення лише одного конкретного символу з файлу?

cat demo_lowercase.txt

cat demo_lowercase.txt | tr -d 'y'

Він видалив із файлу всі записи "y".

Стискання повторюваних символів

Бувають випадки, коли символ повторюється послідовно. Якщо ви маєте справу з такими набридливими проблемами, просто нехай “tr” подбає про це! Використовуючи наступну команду, ви можете стиснути подібні випадки. По суті, він зберігає початкову появу символу та видаляє додаткові.

По-перше, час перевірити, як виглядає демонстраційний файл.

кішка дублікат.txt

Тепер передайте вміст на "tr".

кішка дублікат.txt | tr -s [: цифри:]

Тут параметр “-s” є показником виконання дії “стискання”.

Розбиття / злиття речень

Давайте перевіримо демонстраційний файл.

кажан дублікат.txt

Він містить речення з пробілами, що розділяють слова, праворуч? Розділимо слова на нові рядки.

кішка дублікат.txt | tr "" "\ n"

Ця команда замінила всі пробільні символи символами нового рядка.

Давайте знову об’єднаємо розбите речення у довге речення.

кажан дублікат.txt

кішка дублікат.txt | tr "\ n" ""

Переклад символів

Подібно до того, як ми перекладали символи раніше, цього разу ми будемо робити те саме, але лише з одним символом.

демонстрація котів.txt

У цьому файлі давайте змінимо всі символи нового рядка на крапку з комою.

демонстрація котів.txt | tr "\ n" ";"

Мені довелося обернути це навколо “відлуння”. В іншому випадку це створить певний результат, оскільки останній символ нового рядка також буде переведений у крапку з комою.

Існує інший спосіб зміни персонажів. Однак цим важче керувати.

кішка дублікат1.txt

кішка дублікат1.txt | tr -c 'd' 'z'

кішка дублікат1.txt | tr -c 'd' 'z'

Ого! Давайте обернемо його навколо “echo”, щоб краще зрозуміти результат.

echo $ (дублікат кота1.txt | tr -c 'd' 'z')

Що тут сталося? Використовуючи прапор “-c”, “tr” лише збереже цільовий символ незмінним. У разі невідповідності кожен інший персонаж буде перетворений. Тут будь-який символ, крім "b", був замінений на "z".

Переклад рядків

“Tr” також може працювати зі рядками. Давайте виконаємо заміну рядків.

кішка дублікат1.txt

кішка дублікат1.txt | tr "дублікат" "not_duplicate"

Мій рядок для заміни коротший за рядок, який потрібно замінити, тому він не підходить.

Набори символів

На даний момент ви помітили, що існує ряд наборів символів, які підтримує "tr". Хоча низка з них була використана у наведених вище прикладах, інші набори символів також дуже корисні. Ось список усіх підтримуваних списків символів.

Набори символів POSIX

  • [: цифра:]: Цифри 0-9
  • [: alpha:]: Абетки a-z та A-Z.
  • [: alnum:]: Буквено-цифрові символи
  • [: punct:]: Знаки пунктуації
  • [: пробіл:]: Будь-який пробіл, наприклад, пробіл, вкладка, FF, CR, NL, FF тощо.
  • [: верхній:]: Усі великі букви
  • [: нижній:]: Усі малі літери
  • [: cntrl:]: Усі контрольні символи (NL, CR, EXT, STX, ACK, SO, DC1, DC2, NAK, ETB, ESC, IS1, IS2, DEL тощо).)

Додаткові набори символів

  • [A-Z]: Усі великі букви
  • [a-z]: Усі малі літери
  • [0-9]: Усі цифри

Заключні думки

Існує безліч способів, як усі ці особливості "tr" можуть принести користь користувачам. Я завжди рекомендую ознайомитись із усіма доступними опціями та поглибленими посібниками щодо будь-якого інструменту Linux на їхніх сторінках про людину, інформацію та довідку, оскільки вони можуть запропонувати більш цінні знання.

tr --допомога

людина тр

інфо тр

Насолоджуйтесь!

Як використовувати AutoKey для автоматизації ігор Linux
AutoKey - це утиліта автоматизації робочого столу для Linux та X11, запрограмована на Python 3, GTK та Qt. Використовуючи його сценарії та функціональ...
How to Show FPS Counter in Linux Games
Linux gaming got a major push when Valve announced Linux support for Steam client and their games in 2012. Since then, many AAA and indie games have m...
How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...