Android

Tr parancs linuxban példákkal

Meteor: a better way to build apps by Roger Zurawicki

Meteor: a better way to build apps by Roger Zurawicki

Tartalomjegyzék:

Anonim

tr egy parancssori segédprogram a Linux és az Unix rendszerekben, amely lefordítja, törli és kibontja a karaktereket a szokásos bemenetből, és az eredményt beírja a szokásos kimenetbe.

A tr parancs végrehajthat olyan műveleteket, mint az ismételt karakterek eltávolítása, a nagybetűk átalakítása kisbetűkké, valamint az alapvető karakterek cseréje és eltávolítása. Általában a csöveken keresztül más parancsokkal kombinálva használják.

Ebben az oktatóanyagban megmutatjuk, hogyan kell használni a tr parancsot gyakorlati példák és a leggyakoribb lehetőségek részletes magyarázatainak segítségével.

Hogyan kell használni a tr parancsot

A tr parancs szintaxisa a következő:

tr OPTION… SET1

tr két karakterkészletet fogad el, általában azonos hosszúságú, és az első halmaz karaktereit a második halmaz megfelelő karaktereivel helyettesíti.

A SET alapvetõen egy karakterlánc, beleértve a speciális visszajelzõ karaktereket.

A következő példában a tr kicseréli az összes karaktert a szokásos bemenetre (linuxize), az első halmaz karakterének hozzárendelésével a második halmazhoz.

echo 'linuxize' | tr 'lin' 'red'

l minden előfordulását r , i e -vel és n vel helyettesítjük:

reduxeze

A karakterkészletek karakterláncok segítségével is meghatározhatók. Írás helyett például:

echo 'linuxize' | tr 'lmno' 'wxyz'

Te tudod használni:

echo 'linuxize' | tr 'ln' 'w-z'

A -c (- --complement ) opció használatakor a tr minden olyan karaktert kicserél, amelyek nem szerepelnek a SET1-ben.

Az alábbi példában az „li” kivételével minden karakter helyébe a második készlet utolsó karaktere lép:

echo 'linuxize' | tr -c 'li' 'xy'

liyyyiyyy

Mint már észrevetted, a fenti kimenetnek egy láthatóbb karakter van, mint a bemenetnek. Ennek oka az, hogy az echo parancs egy láthatatlan új sor karaktert nyomtat , amelyet szintén y helyettesít. Karakterlánc visszhangzásához új sor nélkül használja a -n opciót.

A -d (- törlés) opció azt mondja tr hogy törölje a SET1-ben megadott karaktereket. Ha karaktereket sajtolás nélkül töröl, akkor csak egy halmazt adja meg.

Az alábbi parancs eltávolítja az l , i és z karaktereket:

echo 'Linuxize' | tr -d 'liz'

Az L karaktert nem törli, mert a bemenet tartalmaz nagybetűs L betűt, míg a SET l karakter kisbetűs.

Lnuxe

A -s ( --squeeze-repeats ) opció --squeeze-repeats az ismétlődő események sorozatát az utolsó SET karakterkészlettel.

A következő példában a tr eltávolítja az ismétlődő szóköz karaktereket:

echo "GNU \ Linux" | tr -s ' '

GNU \ Linux

A SET2 használatakor a SET1-ben megadott karakter sorozat helyébe a SET2 lép.

echo "GNU \ Linux" | tr -s ' ' '_'

GNU_\_Linux

A -t ( --truncate-set1 ) opció arra készteti a tr hogy csonkolja a SET1-et a SET2 hosszához, mielőtt további feldolgozást végezne.

Alapértelmezés szerint, ha a SET1 nagyobb, mint a SET2 tr akkor a SET2 utolsó karakterét újra felhasználja. Íme egy példa:

echo 'Linux ize' | tr 'abcde' '12'

A kimenet azt mutatja, hogy a SET1 e karaktere megegyezik a SET2 legújabb karakterével, amely 2 :

Linux iz2

Most használja ugyanazt a parancsot a -t kapcsolóval:

echo 'Linux ize' | tr -t 'abcde' '12'

Linux ize

Láthatja, hogy a SET1 utolsó három karakterét eltávolították. A SET1 'ab' lesz, azonos hosszúságú, mint a SET2, és nem történik cserélés.

Opciók kombinálása

A tr parancs lehetővé teszi a lehetőségek kombinálását is. Például a következő parancs először az összes karaktert helyettesíti, kivéve i , 0 , majd kinyomja az ismételt 0 karaktereket:

echo 'Linux ize' | tr -cs 'i' '0'

0i0i0

Tr parancs példák

Ebben a szakaszban néhány példát mutatunk be a tr parancs általános használatára.

Konvertálja a kisbetűket nagybetűkké

A kisbetű konvertálása nagybetűsre vagy fordítottra a tr parancs egyik tipikus használati esete. megegyezik az összes kisbetűvel és megegyezik az összes nagybetűvel.

echo 'Linuxize' | tr '' ''

LINUXIZE

Karakterosztályok helyett tartományokat is használhat:

echo 'Linuxize' | tr 'az' 'A-Z'

A kis- és nagybetűk konvertálásához egyszerűen váltson át a készletek helyét.

Távolítsa el az összes nem numerikus karaktert

A következő parancs eltávolítja az összes nem numerikus karaktert:

echo "my phone is 123-456-7890" | tr -cd

az összes számjegyű karaktert jelenti, és a -c opció használatával a parancs eltávolítja az összes nem számjegyű karaktert. A kimenet így néz ki:

1234567890

Helyezzen minden szót új sorba

Ahhoz, hogy minden szót új sorba tegyünk, meg kell egyeztetnünk minden nem alfanumerikus karaktert, és új sorra kell cserélnünk:

echo 'GNU is an operating system' | tr -cs '' '\n'

GNU is an operating system

Távolítsa el az üres sorokat

Az üres sorok törléséhez egyszerűen nyomja meg az ismétlődő sorok karaktereit:

tr -s '\n' < file.txt > new_file.txt

A fenti parancsban < átirányítási szimbólumot használunk, hogy átadjuk a file.txt tartalmát a tr parancsnak. Az átirányítás > a parancs kimenetet írja az new_file.txt .

A $PATH könyvtárakat külön sorra nyomtassa ki

A $PATH környezeti változó egy kettősponttal elválasztott könyvtárak listája, amely megmondja a héjnak, hogy melyik könyvtárak keressenek futtatható fájlokat parancs beírásakor.

Az egyes könyvtárak külön sorra történő kinyomtatásához meg kell egyeznie a kettősponttal (:), és helyettesíteni kell az új sorral:

echo $PATH | tr ':' '\n'

/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin

Következtetés

tr egy parancs karakterek fordítására vagy törlésére.

Annak ellenére, hogy nagyon hasznos, a tr csak egyetlen karakterrel használható. A bonyolultabb mintázat-illesztéshez és karakterlánc-manipulációhoz sed vagy awk kell használni.

tr terminál