Команди терміналу tr - замінити символи в mac OS X

Утиліта tr копіює зі стандартного введення до стандартного виведення, замінюючи або видаляючи задані символи.

У першому варіанті синтаксису утиліти tr символи зsting1перетворюються на символи вказані уstring2, причому перший символ, вказаний уstring1підміняється першим символом зstring2. Так команда

Змінює зустрічені 'a' на 'b', а 'b' на 'a' У другому варіанті написання команди символи, вказані уstring1будуть видалятися із вступних даних. У третьому параметрі відбувається стиснення символів, що повторюються, як описано в параметрі -s. Наприклад, наберіть у терміналі:

і введіть рядок 'aaabbbccc', в результаті вийде 'abccc'.

У четвертому написанні команди спочатку видаляються символи, вказані у параметріstring1, а потім відбувається стиснення символів зазначених у параметріstring2.

В якості значеньstring1іstring2можуть бути використані наступні символи і значення:

символ - будь-який символ, що вказує саме на себе

\вісімкове число - зворотний слеш і наступні за ним три вісімкові цифри описують код символу у вісімковому численні

\символ - в даному випадку відбудеться перекодування в спецсимвол за такою таблицею:

c-c Діапазон символів від симовла вказаного замість першої c до другої с. Дивитись приклади.

Для неоктального range endpoints становлять range of characters між the range endpoints, inclusive, in ascending order, as defined by the collation sequence. Якщо її або частина з кінцями пунктів є останніми закінченнями, це становлять рівні конкретних кодованих рівнів між кінцями кінця, inclusive.

[:class:] - використовувативсі символи, які потрапляють у заданий клас. Замістьclassможуть бути використані такі значення:

Коли "[:lower:]" знаходиться уstring1і при цьому на тій же позиції в string2 знаходиться "[:upper:]" відбувається заміна регістру на великі літери відповідно до LC_TYPE поточної локалі. Аналогічно відбувається заміна великих на малі якщо вstring1вказати "[:upper:]", а вstring2на відповідній позиції "[:lower:]".

Для детальної інформації про клас шукайте матеріали на apple developer за матеріалом ctype(3)

[=equiv=] Надає всі символи, що належать до класу як рівні, в порядку їх значень, що перекодуються.

[#*n] Позначаєnповторень символу#. Використання цього виразу допустиме лише вstring2. Якщоn=0 або опущено, воно інтерпретується як велике значення для розширення послідовності до довжиниstring1. Якщо спочатку числаnвказано 0, тоn- вважається вісімковим числом. Інакшеnвизнається десятковим.

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

Приклади:

Створити список слів, що зустрічаються у файліfile1, по одному в кожному рядку, де словом вважається послідовність алфавітних символів розділених будь-якими іншими символами.

Перетворити всі малі символи у файліfile1у великі

Ця команда краща за традиційну команду UNIX (нижче), оскільки дозволяє коректно перетворити символи різними мовами.

Видалити недруковані символи з файлуfile1