tr-opdracht in Unix/Linux met voorbeelden
De tr command is een UNIX-opdrachtregelhulpprogramma voor het vertalen of verwijderen van tekens. Het ondersteunt een reeks transformaties, waaronder hoofdletters naar kleine letters, herhalende tekens samenknijpen, specifieke tekens verwijderen en eenvoudig zoeken en vervangen. Het kan worden gebruikt met UNIX-pipes om complexere vertalingen te ondersteunen. tr staat voor vertalen.
Syntaxis:
$ tr [OPTION] SET1 [SET2]
Opties -c: complementeert de set karakters in string.d.w.z. bewerkingen zijn van toepassing op karakters die niet in de gegeven set voorkomen. -d: verwijder karakters in de eerste set uit de uitvoer. -s: vervangt herhaalde tekens uit set1 door een enkele gebeurtenis. -t: kapt set1 af.
Voorbeeldopdrachten
1. Kleine letters naar hoofdletters converteren. Om tekens van kleine letters naar hoofdletters te converteren, kunt u een reeks tekens opgeven of de vooraf gedefinieerde tekenklassen gebruiken.
$ cat greekfile
Uitgang:
WELCOME TO techcodeview.com
$ cat greekfile | tr [a-z] [A-Z]
Uitgang:
WELCOME TO GEEKSFORGEEKS
of
$ cat greekfile | tr [:lower:] [:upper:]
Uitgang:
WELCOME TO GEEKSFORGEEKS
Als alternatief kunt u input leveren voor de tr commando met omleiding:
tr [:lower:] [:upper:]
Uitgang:
WELCOME TO GEEKSFORGEEKS
2. Hoe u witruimtetekens naar tabbladen vertaalt. De volgende opdracht vertaalt alle witruimtetekens naar tabbladen
$ echo 'Welcome To techcodeview.com' | tr [:space:] ' '
Uitgang:
Welcome To techcodeview.com
In het vorige voorbeeld kunnen we ook omleiding gebruiken om invoer voor te leveren tr . Hoewel we deze keer daarvoor een here-string zullen gebruiken:
tr [:space:] ' ' < < < 'Welcome To techcodeview.com'
Uitgang:
Welcome To techcodeview.com
3. Hoe accolades naar haakjes te vertalen. U kunt ook van en naar een bestand vertalen. In dit voorbeeld vertalen we accolades in een bestand met haakjes.
$ cat greekfile
Uitgang:
{WELCOME TO} techcodeview.com $ tr '{}' '()' newfile.txt Uitgang:
(WELCOME TO) techcodeview.com
De bovenstaande opdracht leest elk teken uit geekfile.txt, vertaalt of het een accolade is en schrijft de uitvoer naar newfile.txt.
4. Hoe je een reeks repetitieve tekens kunt samenpersen met de optie -s. Om herhaalde tekens uit een set te verwijderen, gebruikt u de optie -s. Hiermee worden herhaalde exemplaren van tekens van de laatst opgegeven SET verwijderd. OF we kunnen zeggen dat je meerdere doorlopende ruimtes kunt converteren met een enkele spatie
$ echo 'Welcome To techcodeview.com' | tr -s ' '
Uitgang:
Welcome To techcodeview.com
En nogmaals, voer dezelfde taak uit, maar gebruik hier een string:
tr -s ' ' < < < 'Welcome To techcodeview.com'
Uitgang:
Welcome To techcodeview.com
5. Hoe u gespecificeerde tekens verwijdert met de optie -d. Gebruik de optie -d om specifieke tekens te verwijderen. Met deze optie worden de tekens uit de eerste opgegeven set verwijderd.
$ echo 'Welcome To techcodeview.com' | tr -d W
Uitgang:
elcome To techcodeview.com
Of gebruik op equivalente wijze:
tr -d W < < < 'Welcome to techcodeview.com'
Uitgang:
elcome To techcodeview.com
6. Om alle cijfers uit de reeks te verwijderen, kunt u gebruiken
$ echo 'my ID is 73535' | tr -d [:digit:]
of
$ tr -d [:digit:] < < < 'my ID is 73535'
Uitgang:
my ID is
7. Hoe de sets aan te vullen met de optie -c Je kunt SET1 aanvullen met de optie -c. Als u bijvoorbeeld alle tekens behalve cijfers wilt verwijderen, kunt u het volgende gebruiken.
$ echo 'my ID is 73535' | tr -cd [:digit:]
of
$ tr -cd [:digit:] < < < 'my ID is 73535'
Uitgang:
73535