tr (Unix)

Från Wikipedia
Hoppa till: navigering, sök

tr är ett verktygsprogram i Unix och unixliknande system, för manipulering av text. Programmet byter ut eller raderar ett visst eller vissa tecken i indatat och ger resultatet som utdata. Tecknen som skall manipuleras kan anges som sådana, som "escape-koder", som teckenräckor eller, i nyare versioner, som teckenklasser.

Programmet arbetar byte för byte, vilket betyder att det inte, åtminstone i klassisk variant, klarar att byta ut bokstäver som kodas som flera byte, såsom å, ä och ö i det numera i unixliknande system vanliga kodningssystemet UTF-8. Däremot kan det arbeta med en text där sådana tecken ingår, förutsatt att tecknen som skall bytas ut inte ingår som beståndsdel i bokstäver som skall lämnas orörda (vilket inte är ett problem i UTF-8, men eventuellt i UTF-16).

tr, liksom andra verktygsprogram i Unix, används ofta som del i en räcka kommandon ("pipe", "rör"), så att programmet körs på data som tagits fram av ett annat program och ett tredje program använder utdatat som sitt indata. Möjligheten att kombinera små verktygsprogram är en faktor som gör kommandotolken till ett effektivt arbetsredskap i dessa system.

Exempel[redigera | redigera wikitext]

För att byta ut kolonen i fil_A mot semikolon och spara resultatet som fil_B kan man ge följande kommando (där "<" och ">" anger att vad som följer är filnamn för in- respektive utdata):

 tr : ; < fil_A > fil_B

För att plocka ut tredje kolumnen (kolumner avskilda med tabulatortecken) förbehandlar man filen med programmet cut. Därefter byter tr blankslag mot "golvstreck" och kontrolltecken mot asterisker. Citationstecknen behövs för att kommandotolken skall förmedla blankslaget och asterisken istället för att själv tolka dem. Det första tecknet i den första gruppen byts mot det första i den andra och så vidare; då tecknen tar slut i den andra gruppen används det sista:

 cut -f 3 fil_A | tr " [:cntrl:]" "_*" > fil_B

Se även[redigera | redigera wikitext]