Linux Tutorials | tr command | GeeksforGeeks
Innehållsförteckning:
- Hur man använder
trkommandot - Kombinera alternativ
- Exempel på tr kommando
- Konvertera gemener till versaler
- Ta bort alla icke-numeriska tecken
- Sätt varje ord i en ny rad
- Ta bort tomma rader
- Skriv ut
$PATHkataloger på en separat rad - Slutsats
tr
är ett kommandoradsverktyg i Linux- och Unix-system som översätter, raderar och pressar tecken från standardingången och skriver resultatet till standardutgången.
tr
kommandot kan utföra operationer som att ta bort upprepade tecken, konvertera versaler till små bokstäver och grundläggande tecken ersätta och ta bort. Vanligtvis används det i kombination med andra kommandon genom rörledning.
I den här tutorialen visar vi dig hur du använder kommandot
tr
genom praktiska exempel och detaljerade förklaringar av de vanligaste alternativen.
Hur man använder
tr
kommandot
Syntaxen för
tr
kommandot är enligt följande:
tr OPTION… SET1
tr
accepterar två uppsättningar tecken, vanligtvis med samma längd, och ersätter tecknen i de första uppsättningarna med motsvarande tecken från den andra uppsättningen.
En
SET
är i grunden en sträng av tecken, inklusive de specialtecken som undviks från släpp.
I följande exempel kommer
tr
att ersätta alla tecken från standardinmatningen (linuxize) genom att kartlägga tecknen från den första uppsättningen med de matchande tecknen från den andra uppsättningen.
echo 'linuxize' | tr 'lin' 'red'
Varje förekomst av
l
ersätts med
r
,
i
med
e
och
n
med
d
:
reduxeze
Teckenuppsättningarna kan också definieras med hjälp av teckenintervall. I stället för att skriva:
echo 'linuxize' | tr 'lmno' 'wxyz'
du kan använda:
echo 'linuxize' | tr 'ln' 'w-z'
När alternativet
-c
(-
--complement
) används ersätter
tr
alla tecken som inte finns i SET1.
I exemplet nedan kommer alla tecken utom "li" att ersättas med det sista tecknet från den andra uppsättningen:
echo 'linuxize' | tr -c 'li' 'xy'
liyyyiyyy
Som du kanske har lagt märke till har utgången ovan ett mer synligt tecken än ingången. Detta beror på att
echo
skriver ut ett osynligt nylinjetecken
som också ersätts med
y
. För att eko en sträng utan en ny rad använder du alternativet
-n
.
--delete
-d
(-
--delete
) berättar för
tr
att radera tecken som anges i SET1. När du tar bort tecken utan att klämma anger du bara en uppsättning.
Kommandot nedan tar bort
l
,
i
och
z
tecken:
echo 'Linuxize' | tr -d 'liz'
L
tecknet raderas inte eftersom ingången innehåller en stor bokstav
L
medan
l
tecknet i SET är gemener.
Lnuxe
--squeeze-repeats
-s
(
--squeeze-repeats
) ersätter en sekvens av upprepade händelser med teckenuppsättningen i den sista SET.
I följande exempel tar
tr
de upprepade mellanslagstecken:
echo "GNU \ Linux" | tr -s ' '
GNU \ Linux
När SET2 används ersätts sekvensen för det tecken som anges i SET1 med SET2.
echo "GNU \ Linux" | tr -s ' ' '_'
GNU_\_Linux
--truncate-set1
-t
(-
--truncate-set1
) tvingar
tr
att trunkera SET1 till längden på SET2 innan du vidarebearbetar.
Som standard, om SET1 är större än SET2
tr
återanvänder det sista tecknet i SET2. Här är ett exempel:
echo 'Linux ize' | tr 'abcde' '12'
Outputen visar att tecknet
e
från SET1 matchas med det senaste tecknet i SET2, vilket är
2
:
Linux iz2
Använd nu samma kommando med alternativet
-t
:
echo 'Linux ize' | tr -t 'abcde' '12'
Linux ize
Du kan se att de tre sista tecknen i SET1 tas bort. SET1 blir 'ab', samma längd som SET2, och ingen ersättning görs.
Kombinera alternativ
Med kommandot
tr
kan du också kombinera dess alternativ. Till exempel ersätter följande kommando först alla tecken utom
i
med
0
och pressar sedan upprepade
0
tecken:
echo 'Linux ize' | tr -cs 'i' '0'
Exempel på tr kommando
I det här avsnittet täcker vi några exempel på vanliga användningar av
tr
kommandot.
Konvertera gemener till versaler
Att konvertera gemener till versaler eller versaler är ett av de typiska användningsfallen för
tr
kommandot.
matchar alla små bokstäver och
matchar alla stora tecken.
echo 'Linuxize' | tr '' ''
LINUXIZE
Istället för teckenklasser kan du också använda intervall:
echo 'Linuxize' | tr 'az' 'A-Z'
Om du vill konvertera versaler till små bokstäver byter du helt enkelt platserna för seten.
Ta bort alla icke-numeriska tecken
Följande kommando tar bort alla icke-numeriska tecken:
echo "my phone is 123-456-7890" | tr -cd
står för alla siffror och med alternativet
-c
tar kommandot bort alla icke-siffriga tecken. Utgången ser ut så här:
Sätt varje ord i en ny rad
För att sätta varje ord i en ny rad måste vi matcha alla icke-alfanumeriska tecken och ersätta dem med en ny rad:
echo 'GNU is an operating system' | tr -cs '' '\n'
Ta bort tomma rader
För att radera de tomma linjerna klämmer du bara in de repetitiva nylinjetecken:
tr -s '\n' < file.txt > new_file.txt
I kommandot ovan använder vi omdirigeringssymbolen
<
att skicka innehållet i
file.txt
till kommandot
tr
. Omdirigering
>
skriver kommandots
new_file.txt
till
new_file.txt
.
Skriv ut
$PATH
kataloger på en separat rad
$PATH
är en kolonavgränsad lista över kataloger som säger skalet vilka kataloger som ska söka efter körbara filer när du skriver ett kommando.
För att skriva ut varje katalog på en separat rad måste vi matcha kolon (:) och ersätta den med den nya raden:
echo $PATH | tr ':' '\n'
/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin
Slutsats
tr
är ett kommando för att översätta eller radera tecken.
Trots att det är mycket användbart kan
tr
bara arbeta med enstaka tecken. För mer komplexa mönstermatchning och strängmanipulation bör du använda
sed
eller
awk
.
Echo-kommando i Linux med exempel
Echo-kommandot är ett av de mest grundläggande och ofta använda kommandona i Linux. Argumenten som skickas till eko skrivs ut på standardutgången.
Curl-kommando i Linux med exempel
Curl är ett kommandoradsverktyg för överföring av data från eller till en server som är utformad för att fungera utan användarinteraktion. I den här tutorialen visar vi dig hur du använder curlverktyget genom praktiska exempel och detaljerade förklaringar av de vanligaste lockalternativen.
Linux klipp kommando med exempel
Cut är ett verktyg för kommandorader som gör att du kan klippa delar av rader från specificerade filer eller data i rörledning och skriva ut resultatet till standardutdata. I den här tutorialen kommer vi att visa dig hur du använder Linux-klippkommandot genom praktiska exempel och detaljerade förklaringar av de vanligaste klippalternativen.







