Команди терміналу 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