BASH programavimas

Simbolių pašalinimas iš eilutės „Bash“

Simbolių pašalinimas iš eilutės „Bash“

Kartais gali tekti pašalinti simbolius iš eilutės. Nepriklausomai nuo priežasties, „Linux“ suteikia jums įvairius įmontuotus patogius įrankius, leidžiančius pašalinti simbolius iš „Bash“ eilutės. Šiame straipsnyje parodyta, kaip naudoti tuos įrankius, norint pašalinti simbolius iš eilutės.

Straipsnyje aprašoma, kaip atlikti šiuos veiksmus:

Šiame straipsnyje parodytos komandos buvo vykdomos „Ubuntu 20“.04 Židinio Fossa. Tos pačios komandos taip pat gali būti atliekamos ir kituose „Linux“ paskirstymuose, kuriuose yra aukščiau nurodytų įrankių. Komandoms vykdyti naudosime numatytąją programą „Terminal“. „Terminal“ programą galite pasiekti naudodami sparčiuosius klavišus „Ctrl + Alt + T“.

Pašalinkite simbolius iš eilutės naudodami sed

„Sed“ yra galingas ir patogus įrankis, naudojamas teksto srautams redaguoti. Tai neinteraktyvus teksto redaktorius, leidžiantis atlikti pagrindines teksto manipuliacijas įvesties srautuose. Taip pat galite naudoti „sed“, kad pašalintumėte nepageidaujamus simbolius iš eilučių.

Parodymo tikslais mes naudosime eilutės pavyzdį ir tada prijunkime ją prie komandos sed.

Pašalinkite specifinį simbolį iš eilutės

Naudodami sed, galite pašalinti konkretų simbolį iš eilutės. Pvz., Norint pašalinti „h“ iš eilutės „Labas, kaip tau sekasi?Komanda būtų tokia:

$ echo "labas, kaip tu?"| sed 's / h //'

Tai pašalins tik pirmąjį „h“ atsiradimą eilutėje.

Norėdami pašalinti visus „h“ atvejus iš eilutės, naudokite šią komandą:

$ echo "labas, kaip tu?"| sed 's / h // g'

Kur g reiškia globalų. Jis pašalins visus „h“ atvejus eilutėje.

Pašalinkite pirmąjį simbolį iš eilutės

Norėdami pašalinti pirmąjį simbolį iš eilutės „Labas, kaip tau sekasi?“ komanda būtų tokia:

$ echo "labas, kaip tu?"| sed 's / ^.// 'failas

Kur (.) atitinka tiksliai vieną simbolį ir (^) atitinka bet kurį simbolį eilutės pradžioje.

Pašalinti paskutinį simbolį iš eilutės

Norėdami pašalinti paskutinį simbolį iš eilutės „Labas, kaip tau sekasi?“ komanda būtų tokia:

$ echo "labas, kaip tu?"| sedas /.$ // '

Kur (.) atitinka tiksliai vieną simbolį, o ($) - bet kurį simbolį eilutės pabaigoje.

Pašalinkite pirmąjį ir paskutinįjį simbolį iš eilutės

Norėdami pašalinti pirmąjį ir paskutinįjį simbolį iš eilutės „Labas, kaip tau sekasi?“ komanda būtų tokia:

$ echo "labas, kaip tu?"| sed 's / ^.//; s /.$ // '

Pašalinkite simbolius iš eilutės naudodami awk

„Awk“ yra galinga scenarijų kalba, naudojama šablonų derinimui, kartu su teksto apdorojimu. „Awk“ leidžia jums filtruoti ir transformuoti tekstą įvairiais būdais. Taip pat galite naudoti „awk“, kad pašalintumėte simbolius iš eilučių.

Demonstravimo tikslais naudosime eilutės pavyzdį ir tada ją pridedame prie komandos awk.

Pašalinkite pirmąjį simbolį iš eilutės

Norėdami pašalinti pirmąjį simbolį iš eilutės „Labas, kaip tau sekasi?“ komanda būtų tokia:

$ echo "labas, kaip tu?"| awk 'spausdinimo substratas (0, 2 USD)'

Kur ($ 0) yra visa tikslinė eilutė, o (2) - simbolio pradinė pozicija. Pirmiau nurodyta komanda pašalina pirmąjį simbolį „h“, simbolio skaičių „1“ ir grąžina tikslinę eilutę, prasidedančią antruoju simboliu „e“."

Pašalinkite pirmuosius du simbolius iš eilutės

Taip pat galite pašalinti tam tikrą simbolių skaičių iš eilutės pradžios. Pavyzdžiui, norint pašalinti du pirmuosius simbolius iš eilutės „Labas, kaip tau sekasi?“ komanda būtų tokia:

$ echo "labas, kaip tu?"| awk 'spausdinimo substratas (0, 3 USD)'

Pirmiau nurodyta komanda pašalins pirmuosius du simbolius „jis“ arba simbolių skaičius „1 ir 2“ ir grąžins tikslinę eilutę, prasidedančią simbolio skaičiumi „3“ arba „l“."

Pašalinti paskutinį simbolį iš eilutės

Norėdami pašalinti paskutinį simbolį išLabas, kaip tau sekasi?“ komanda būtų tokia:

$ echo "labas, kaip tu?"| awk 'spausdinimo substratas ($ 0, 1, ilgis ($ 0) -1)'

Kur ilgis (0 USD) -1 reiškia išskaičiuoti “1'nuo viso simbolio ilgio.

Pirmiau nurodyta komanda išspausdins eilutę, prasidedančią simbolio numeriu '1' iki ilgis (0 USD) -1 nuplėšti paskutinį veikėją.

Yra19simboliai (įskaitant tarpus) aukščiau esančioje eilutėje. Komanda veiks spausdindama visus simbolius, pradedant simboliais '1„ir iki simbolio“18,„pašalinant paskutinį simbolį“19."

Pašalinti paskutinius du simbolius iš eilutės

Norėdami pašalinti paskutinius du simbolius išLabas, kaip tau sekasi?Komanda būtų tokia:

$ echo "labas, kaip tu?"| awk 'spausdinimo substratas (0, 1 USD, ilgis (0 USD) -2)'

Kur ilgis (0 USD) -2 reiškia išskaičiuoti “2'nuo viso simbolio ilgio.

Pirmiau nurodyta komanda išspausdins eilutę, prasidedančią simbolio skaičiumi '1"ir iki simbolio skaičiaus"ilgis (0 USD) -2,', norėdami pašalinti du paskutinius eilutės simbolius.

Pašalinkite tiek pirmąjį, tiek paskutinį simbolius iš eilutės

Norėdami pašalinti tiek pirmąjį, tiek paskutinįjį simbolį iš eilutės „Labas, kaip tau sekasi?“ komanda būtų tokia:

$ echo "labas, kaip tu?"| awk 'spausdinimo substratas (0, 2 USD, ilgis (0 USD) - 2)'

Kur ilgis (0 USD) -2 reiškia išskaičiuoti “2'nuo viso simbolio ilgio.

Pirmiau nurodyta komanda išspausdins eilutę, prasidedančią simbolio skaičiumi '2„iki simbolio skaičiaus“ilgis (0 USD) -2,', jei norite pašalinti pirmą ir paskutinį simbolį.

Pašalinkite simbolį iš eilutės naudodami pjūvį

Iškirpti yra komandinės eilutės įrankis, paprastai naudojamas ištraukti teksto dalį iš eilutės ar failo ir išspausdinti rezultatą į standartinę išvestį. Taip pat galite naudoti šią komandą pašalindami simbolius iš eilutės.

Parodymo tikslais mes naudosime eilutės pavyzdį ir tada prijunkime ją prie komandos cut.

Pašalinkite pirmąjį simbolį iš eilutės

Norėdami pašalinti pirmąjį simbolį iš eilutės,Labas, kaip tau sekasi?“ komanda būtų tokia:

$ echo "labas, kaip tu?"| supjaustyti -c 2-

Ši komanda išspausdins eilutę, pradedant antruoju simboliu, pašalindama pirmąjį simbolį.

Pašalinkite pirmuosius keturis simbolius iš eilutės

Norėdami pašalinti pirmuosius keturis simbolius iš eilutės „Labas, kaip tau sekasi?“ komanda būtų tokia:

$ echo "labas, kaip tu?"| supjaustyti -c 5-

Ši komanda išspausdins eilutę, pradedant nuo penkto simbolio, pašalindama pirmuosius keturis simbolius.

Spausdinti eilutę tarp 2 ir 5 simbolių

Norėdami išspausdinti eilutę „Labas, kaip tau sekasi?“ tarp antrojo ir penktojo simbolių, komanda būtų tokia:

$ echo "labas, kaip tu?"| supjaustyti -c 2-5

Ši komanda išspausdins eilutę, pradedant nuo antrojo simbolio ir baigiant penktuoju simboliu, pašalinant likusius pradžios ir pabaigos simbolius.

Pašalinti paskutinį simbolį iš eilutės

Norėdami pašalinti paskutinį simbolį iš eilutės „Labas, kaip tau sekasi?“ naudoti supjaustyti komanda su rev, taip:

$ echo "labas, kaip tu?"| rev | cut -c2- | rev

Ši komanda veikia pirmiausia pakeisdama eilutę, tada iškirpdama pirmąjį simbolį ir galiausiai dar kartą pakeisdama, kad gautumėte norimą išvestį.

Pašalinti paskutinius keturis simbolius iš eilutės

Norėdami pašalinti paskutinius keturis simbolius iš eilutės „Labas, kaip tau sekasi?“ komanda būtų tokia:

$ echo "labas, kaip tu?"| rev | cut -c5- | rev

Ši komanda veikia iš pradžių pakeisdama eilutę, tada iškirpdama pirmuosius keturis simbolius ir tada vėl ją pakeisdama, kad gautumėte norimą išvestį.

Pašalinkite pirmuosius ir paskutinius simbolius iš eilutės

Norėdami pašalinti pirmąjį ir paskutinįjį simbolį iš eilutės „Labas, kaip tau sekasi?“ naudoti supjaustyti komanda su rev, taip:

$ echo "labas pasaulis!"| supjaustyti -c2- | rev | supjaustyti -c2- | rev

Ši komanda veikia iškirpdama pirmąjį simbolį, tada pakeisdama eilutę ir iškirpdama pirmąjį simbolį, tada vėl ją pakeisdama, kad gautumėte norimą išvestį.

Pašalinkite simbolį iš eilutės naudodami tr

Komanda tr (trumpina vertimui) naudojama versti, spausti ir ištrinti simbolius iš eilutės. Taip pat galite naudoti tr, kad pašalintumėte simbolius iš eilutės.

Parodymo tikslais mes naudosime eilutės pavyzdį ir tada prijunkime ją prie komandos tr.

Pašalinti visus simbolių atvejus

Naudodami komandą tr, galite iš eilutės pašalinti visus mažųjų arba didžiųjų simbolių atvejus. Pvz., Norint pašalinti visus mažosios raidės „h“ atvejus iš eilutės, komanda būtų tokia:

$ echo "Sveiki, kaip tu?"| tr -d h

Panašiai, norint pašalinti visus didžiųjų raidžių „H“ atvejus iš eilutės, komanda būtų tokia:

$ echo "Sveiki, kaip tu?"| tr -d H

Taip pat galite naudoti interpretuotas sekas, kad pašalintumėte mažąsias ir didžiąsias raides:

$ echo "Sveiki, kaip tu?"| tr -d [: viršutinė:]

$ echo "LABAS, kaip tu?"| tr -d [: apatinis:]

Pašalinti visus mažųjų ir didžiųjų raidžių atvejus

Taip pat galite iš eilutės pašalinti visus mažųjų ir didžiųjų simbolių atvejus. Pvz., Ši komanda pašalins visus simbolio „h“ atvejus - mažąsias ir didžiąsias.

$ echo "Sveiki, kaip tu?"| tr -d 'hH'

Pašalinti visus konkretaus diapazono simbolių atvejus

Norėdami pašalinti visus simbolių atvejus iš eilutės konkrečiame diapazone „d-h“, komanda bus tokia:

$ echo "labas, kaip tu?"| tr -d 'd-h'

Ši komanda pašalins visus simbolius diapazone „d-h“ (d, e, f, g, h) eilutėje.

Išvada

„Linux“ sistemoje visada bus daugiau nei vienas būdas atlikti paprastą darbą. Tas pats pasakytina ir apie simbolių pašalinimą iš eilutės. Šis straipsnis parodė keturis skirtingus būdus, kaip tai padaryti, kartu su keliais nepageidaujamų simbolių pašalinimo iš eilutės pavyzdžiais. Sprendimas, kurį įrankį naudoti, priklauso nuo jūsų pageidavimų ir, dar svarbiau, nuo to, ko norite pasiekti.

Kaip pakeisti pelės žymeklio ir žymeklio dydį, spalvą ir schemą sistemoje „Windows 10“
„Windows 10“ pelės žymeklis ir žymeklis yra labai svarbūs operacinės sistemos aspektai. Tai galima pasakyti ir apie kitas operacines sistemas, taigi, ...
Nemokami ir atvirojo kodo žaidimų varikliai, skirti kurti „Linux“ žaidimus
Šiame straipsnyje bus pateiktas nemokamų ir atvirojo kodo žaidimų variklių, kurie gali būti naudojami kuriant 2D ir 3D žaidimus „Linux“, sąrašas. Toki...
„Tomb Raider for Linux“ pamoka
„Tomb Raider“ šešėlis yra dvyliktas „Tomb Raider“ serijos priedas - veiksmo ir nuotykių žaidimų franšizė, sukurta „Eidos Montreal“. Žaidimą kritikai i...