Linux Tutorials | tr command | GeeksforGeeks
Inhoudsopgave:
- Hoe het
trcommando te gebruiken - Opties combineren
- Tr Command-voorbeelden
- Kleine letters omzetten in hoofdletters
- Verwijder alle niet-numerieke tekens
- Zet elk woord op een nieuwe regel
- Verwijder lege regels
- Druk
$PATHmappen af op een afzonderlijke regel - Conclusie
tr
is een opdrachtregelhulpprogramma in Linux- en Unix-systemen dat tekens uit de standaardinvoer vertaalt, verwijdert en knijpt en het resultaat naar de standaarduitvoer schrijft.
De opdracht
tr
kan bewerkingen uitvoeren zoals het verwijderen van herhaalde tekens, het omzetten van hoofdletters in kleine letters en het vervangen en verwijderen van standaardtekens. Meestal wordt het gebruikt in combinatie met andere opdrachten via leidingen.
In deze zelfstudie laten we u zien hoe u het
tr
commando kunt gebruiken door praktische voorbeelden en gedetailleerde uitleg van de meest voorkomende opties.
Hoe het
tr
commando te gebruiken
De syntaxis voor de opdracht
tr
is als volgt:
tr OPTION… SET1
tr
accepteert twee sets tekens, meestal met dezelfde lengte, en vervangt de tekens van de eerste sets door de overeenkomstige tekens uit de tweede set.
Een
SET
is eigenlijk een reeks tekens, inclusief de speciale backslash-ontsnapte tekens.
In het volgende voorbeeld vervangt
tr
alle tekens van de standaardinvoer (linuxize) door de tekens uit de eerste set toe te wijzen aan de overeenkomende tekens uit de tweede set.
echo 'linuxize' | tr 'lin' 'red'
Elk voorkomen van
l
wordt vervangen door
r
,
i
door
e
en
n
door
d
:
reduxeze
De tekensets kunnen ook worden gedefinieerd met behulp van tekenbereiken. Bijvoorbeeld in plaats van te schrijven:
echo 'linuxize' | tr 'lmno' 'wxyz'
je kunt gebruiken:
echo 'linuxize' | tr 'ln' 'w-z'
Wanneer de optie
-c
(
--complement
) wordt gebruikt, vervangt
tr
alle tekens die zich niet in SET1 bevinden.
In het onderstaande voorbeeld worden alle tekens behalve "li" vervangen door het laatste teken uit de tweede set:
echo 'linuxize' | tr -c 'li' 'xy'
liyyyiyyy
Zoals je misschien hebt gemerkt, heeft de bovenstaande output een meer zichtbaar karakter dan de input. Dit komt omdat het
echo
commando een onzichtbaar newline-teken print
dat ook wordt vervangen door
y
. Gebruik de optie
-n
om een string zonder een nieuwe regel te echoën.
De optie
-d
(
--delete
) vertelt
tr
om tekens te verwijderen die zijn opgegeven in SET1. Wanneer u tekens verwijdert zonder te knijpen, geeft u slechts één set op.
Met de onderstaande opdracht worden de tekens
l
,
i
en
z
:
echo 'Linuxize' | tr -d 'liz'
Het
L
teken wordt niet verwijderd omdat de invoer een hoofdletter
L
terwijl het
l
teken in de SET kleine letters is.
Lnuxe
De optie
-s
(
--squeeze-repeats
) vervangt een reeks herhaalde gebeurtenissen door de tekenset in de laatste SET.
In het volgende voorbeeld verwijdert
tr
de herhaalde spaties:
echo "GNU \ Linux" | tr -s ' '
GNU \ Linux
Wanneer SET2 wordt gebruikt, wordt de reeks van het teken dat is opgegeven in SET1 vervangen door SET2.
echo "GNU \ Linux" | tr -s ' ' '_'
GNU_\_Linux
De optie
-t
(
--truncate-set1
) dwingt
tr
om
--truncate-set1
tot de lengte van SET2 voordat verdere verwerking wordt uitgevoerd.
Als SET1 groter is dan SET2
tr
wordt het laatste teken van SET2 standaard opnieuw gebruikt. Hier is een voorbeeld:
echo 'Linux ize' | tr 'abcde' '12'
De uitvoer laat zien dat het karakter
e
van SET1 overeenkomt met het laatste karakter van SET2, wat
2
:
Linux iz2
Gebruik nu dezelfde opdracht met de optie
-t
:
echo 'Linux ize' | tr -t 'abcde' '12'
Linux ize
U kunt zien dat de laatste drie tekens van de SET1 zijn verwijderd. SET1 wordt 'ab', dezelfde lengte als SET2 en er wordt geen vervanging gemaakt.
Opties combineren
Met de opdracht
tr
kunt u ook de opties combineren. De volgende opdracht vervangt bijvoorbeeld eerst alle tekens behalve
i
door
0
en knijpt vervolgens de herhaalde
0
tekens:
echo 'Linux ize' | tr -cs 'i' '0'
Tr Command-voorbeelden
In deze sectie behandelen we een paar voorbeelden van veelvoorkomende toepassingen van de opdracht
tr
.
Kleine letters omzetten in hoofdletters
Het omzetten van kleine letters in hoofdletters of omgekeerd is een van de typische gebruiksgevallen van de opdracht
tr
.
komt overeen met alle kleine letters en
komt overeen met alle hoofdletters.
echo 'Linuxize' | tr '' ''
LINUXIZE
In plaats van tekenklassen kunt u ook bereiken gebruiken:
echo 'Linuxize' | tr 'az' 'A-Z'
Om hoofdletters naar kleine letters om te zetten, schakelt u eenvoudig de plaatsen van de sets om.
Verwijder alle niet-numerieke tekens
Met de volgende opdracht worden alle niet-numerieke tekens verwijderd:
echo "my phone is 123-456-7890" | tr -cd
staat voor alle tekens en met de optie
-c
verwijdert de opdracht alle niet-tekens. De uitvoer ziet er zo uit:
Zet elk woord op een nieuwe regel
Om elk woord op een nieuwe regel te plaatsen, moeten we alle niet-alfanumerieke tekens matchen en ze vervangen door een nieuwe regel:
echo 'GNU is an operating system' | tr -cs '' '\n'
Verwijder lege regels
Om de lege regels te verwijderen, drukt u eenvoudig op de herhaalde tekens van de nieuwe regel:
tr -s '\n' < file.txt > new_file.txt
In de bovenstaande opdracht gebruiken we het omleidingssymbool
<
om de inhoud van het
file.txt
te
file.txt
aan de opdracht
tr
. De omleiding
>
schrijft de uitvoer van de opdracht naar
new_file.txt
.
Druk
$PATH
mappen af op een afzonderlijke regel
De omgevingsvariabele
$PATH
is een door dubbele punten gescheiden lijst met mappen die de shell vertelt welke mappen moeten worden gezocht naar uitvoerbare bestanden wanneer u een opdracht typt.
Om elke map op een afzonderlijke regel af te drukken, moeten we de dubbele punt (:) matchen en deze vervangen door de nieuwe regel:
echo $PATH | tr ':' '\n'
/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin
Conclusie
tr
is een opdracht voor het vertalen of verwijderen van tekens.
Hoewel zeer nuttig, kan
tr
alleen met enkele tekens werken. Voor complexere patroonafstemming en stringmanipulatie moet u
sed
of
awk
.
Linux snijd commando met voorbeelden
Knippen is een opdrachtregelhulpprogramma waarmee u delen van lijnen uit gespecificeerde bestanden of piped-gegevens kunt knippen en het resultaat naar standaarduitvoer kunt afdrukken. In deze zelfstudie laten we u zien hoe u het Linux-knipcommando kunt gebruiken door praktische voorbeelden en gedetailleerde uitleg van de meest voorkomende knipopties.
Linux-datumopdracht met voorbeelden
Met de opdracht date wordt de systeemdatum weergegeven of ingesteld. Het wordt meestal gebruikt om de datum en tijd in verschillende formaten af te drukken en toekomstige en afgelopen datums te berekenen.
Linux ip commando met voorbeelden
De opdracht ip is een krachtig hulpmiddel voor het configureren van netwerkinterfaces. Het kan worden gebruikt om interfaces omhoog of omlaag te brengen, adressen en routes toe te wijzen en te verwijderen, ARP-cache te beheren en nog veel meer.







