Linux команди

Linux tr команда

Linux tr команда
В Linux „tr“ е вграден инструмент, който може да „превежда, изстисква и / или изтрива символи от стандартен вход, запис в стандартен изход“ (от страницата с ръководството).

От официалното описание е лесно да се разбере стойността на този инструмент. Linux предлага голяма колекция от вградени инструменти. Има някои специални, които са изключително полезни за манипулиране на текст. Вече покрихме редица от тях, като Vim, Nano, awk, sed и други инструменти.

Тези, които работят с текстове редовно, „tr“ определено ще бъде наистина, наистина полезно. Тази статия ще илюстрира най-често използваната „tr“ с достатъчно примери.

Забележка: Урокът ще използва тон фиктивни файлове със произволно съдържание. Всички произволни низове се генерират от Случайни.орг.

Местоположение

който тр

Това е пълният път на командния инструмент “tr”.

Основна употреба

За да използвате инструмента “tr”, трябва да използвате следната командна структура.

тр [SET1] [SET2]

Има различни опции и начини за манипулиране на текстовете с помощта на „tr“. Отначало нека проверим този демонстрационен файл.

демонстрация на котка.текст

Всички знаци са с малки букви, нали? Нека ги преобразуваме в главни букви!

демонстрация на котка.txt | tr [: долна:] [: горна:]

Тук първият параметър на „tr“ указва да извърши превод на всички малки букви на входа. Втората част казва да ги преобразувате в главни букви на изхода.

Сега, нека направим обратното.

демо котка1.текст

демо котка1.txt | tr [: горен:] [: долен:]

Има и друг начин за изпълнение на същата задача. Нека да го проверим.

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

Сега, вместо да казваме на „tr“ да превежда главни в малки или малки букви в главни, ние казахме да идентифицираме записи, съответстващи на диапазона „a“ до „z“ и да ги преведем в еквивалент от диапазона „A“ до „Z“.

Този подобен метод може да се използва и за превод на главни в малки букви.

демо котка1.txt | tr [A-Z] [a-z]

Игра с числа

Видяхме как да преведем главни в малки букви, вдясно? Време е да си поиграете с цифри.

Използвайки следната команда, можем лесно да преведем всички цифри (0-9) в техните еквивалентни символи!

котка demo_digit.текст

котка demo_digit.txt | tr [0-9] [a-z]

Страхотно! Какво ще кажете за главни?

котка demo_digit.txt | tr [0-9] [A-Z]

Просто, но интересно, нали? Можем също да трансформираме символи в цифри!

котка demo_lowercase.текст

котка demo_lowercase.txt | tr [a-z] [0-9]

О, о, изглежда сякаш нещата се разпаднаха, нали? Е, можем да използваме само „a“ до „j“, за да представим едноцифрени числа. Ако има някакъв знак, който е извън тази граница, „tr“ ще замени знака с ']'.

Изтриване на символи

Както подсказва официалното описание, „tr“ може да направи нещо повече от просто превод на символи. В следващия пример ще проверим как да използваме „tr“ за изтриване на определени знаци.

котка произволна.текст

Сега нека изтрием всички числа от съдържанието.

котка произволна.txt | tr -d [0-9]

Тук флагът „-d“ е да казва на „tr“ да изтрие и [0-9], обозначавайки цифри за изтриване.

Можем да направим това и с героите. Следващата команда ще запази всички числа, но ще премахне всички символи.

котка произволна.txt | tr -d [a-z]

Какво ще кажете за премахване на само един конкретен символ от файла?

котка demo_lowercase.текст

котка demo_lowercase.txt | tr -d 'y'

Той изтри всички записи „y“ от файла.

Изстискване на повтарящи се знаци

Има моменти, когато знак се повтаря последователно. Ако се занимавате с такива досадни проблеми, просто оставете „tr“ да се погрижи за това! Използвайки следната команда, можете да изстискате подобни събития. По същество запазва първоначалната поява на героя и изтрива допълнителните.

Първо, време е да проверите как изглежда демонстрационният файл.

котен дубликат.текст

Сега предайте съдържанието на „tr“.

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

Тук параметърът „-s“ е индикаторът за извършване на действието „стискане“.

Прекъсване / обединяване на изречения

Нека проверим демонстрационния файл.

дубликат на прилеп.текст

Съдържа изречение с интервали, разделящи думите, нали? Нека разделим думите на нови редове.

котен дубликат.txt | tr "" "\ n"

Тази команда замени всички интервали с символи от нов ред.

Нека отново обединим разбитото изречение в дълго изречение.

дубликат на прилеп.текст

котен дубликат.txt | tr "\ n" ""

Превод на знаци

Точно както превеждахме знаци преди, този път ще направим същото, но само с един знак.

демонстрация на котка.текст

В този файл нека променим всички символи за нов ред в точка и запетая.

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

Трябваше да го увия около „ехо“. В противен случай би създал някакъв изход, тъй като последният символ на нов ред също ще бъде преведен в точка и запетая.

Има различен начин за промяна на героите. Този обаче е по-труден за контрол.

котен дубликат1.текст

котен дубликат1.txt | tr -c 'd' 'z'

котен дубликат1.txt | tr -c 'd' 'z'

Еха! Нека да го увием около „ехо“, за да разберем по-добре резултата.

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

Какво се е случило тук? Използвайки флага „-c“, „tr“ ще запази непроменен само целевия знак. В случай на несъответствие, всеки друг знак ще бъде трансформиран. Тук всеки символ, различен от „b“, беше заменен с „z“.

Превод на низове

„Tr“ може да работи и със низове. Нека извършим подмяна на низове.

котен дубликат1.текст

котен дубликат1.txt | tr "дубликат" "not_duplicate"

Моят низ за замяна е по-кратък от низа, с който трябва да се замени, така че не се побира.

Набори от знаци

Досега сте забелязали, че има множество набори от знаци, поддържани от „tr“. Докато редица от тях бяха използвани в горните примери, други набори от символи също са много полезни. Ето списък на всички поддържани списъци с символи.

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

  • [: цифра:]: Цифри 0-9
  • [: алфа:]: Азбуки a-z и A-Z.
  • [: alnum:]: Буквено-цифрови знаци
  • [: punct:]: Пунктуационни символи
  • [: интервал:]: Всеки празен знак, например интервал, раздел, FF, CR, NL, FF и т.н.
  • [: upper:]: Всички главни букви
  • [: долен:]: Всички малки букви
  • [: cntrl:]: Всички контролни знаци (NL, CR, EXT, STX, ACK, SO, DC1, DC2, NAK, ETB, ESC, IS1, IS2, DEL и т.н.)

Допълнителни набори от знаци

  • [A-Z]: Всички главни букви
  • [a-z]: Всички малки букви
  • [0-9]: Всички цифри

Финални мисли

Има много начини, по които всички тези функции на „tr“ могат да бъдат от полза за потребителите. Винаги препоръчвам да разгледате всички налични опции и задълбочени ръководства за всеки инструмент на Linux от техните страници за информация, информация и помощ, тъй като те могат да предложат по-ценни знания.

tr --помощ

мъж тр

инфо tr

Наслади се!

Как да обърнете посоката на превъртане на мишката и тъчпада в Windows 10
Мишка и Тъчпадs не само правят изчисленията лесни, но и по-ефективни и отнемат по-малко време. Не можем да си представим живот без тези устройства, но...
Как да промените курсора на мишката и размера на курсора, цвета и схемата в Windows 10
Показалецът на мишката и курсорът в Windows 10 са много важни аспекти на операционната система. Това може да се каже и за други операционни системи, т...
Безплатни и игри с отворен код за разработване на Linux игри
Тази статия ще обхване списък с безплатни двигатели за игри с отворен код, които могат да се използват за разработване на 2D и 3D игри на Linux. Същес...