Kartais gali tekti pašalinti simbolius iš eilutės. Kad ir kokia būtų priežastis, „Linux“ siūlo įvairius integruotus, patogius įrankius, leidžiančius pašalinti simbolius iš eilutės „Bash“. Šis straipsnis parodo, kaip naudoti tuos įrankius, kad pašalintumėte simbolius iš eilutės.
Straipsnyje aprašoma, kaip atlikti šiuos veiksmus:
- Pašalinkite simbolį iš eilutės naudodami sed
- Pašalinkite simbolį iš eilutės naudodami „awk“
- Pašalinkite simbolį iš eilutės naudodami iškirpimą
- Pašalinkite simbolį iš eilutės naudodami tr
Šiame straipsnyje pateiktos komandos buvo atliktos naudojant „Ubuntu 20.04 Focal Fossa“. Tos pačios komandos taip pat gali būti atliekamos naudojant kitus Linux platinimus, kuriuose yra aukščiau išvardytų įrankių. Komandoms paleisti naudosime numatytąją terminalo programą. „Terminal“ programą galite pasiekti naudodami sparčiuosius klavišus „Ctrl“+„Alt“+T.
Pašalinkite simbolius iš eilutės naudodami sed
Sed yra galinga ir patogi priemonė, naudojama redaguoti teksto srautus. Tai ne interaktyvus teksto redaktorius, leidžiantis atlikti pagrindines teksto manipuliacijas įvesties srautuose. Taip pat galite naudoti sed, kad pašalintumėte nepageidaujamus simbolius iš eilučių.
Demonstravimo tikslais naudosime eilutės pavyzdį, o tada įvesime jį į komandą sed.
Pašalinkite konkretų simbolį iš eilutės
Naudodami sed galite iš eilutės pašalinti konkretų simbolį. Pavyzdžiui, pašalinti h iš eilutės Labas, kaip tau sekasi? komanda būtų tokia:
$išmetė 'Labas, kaip tau sekasi?' | sed 's/h //'Tai pašalins tik pirmąjį „h“ įvykį eilutėje.
Norėdami pašalinti visus „h“ atvejus iš eilutės, naudokite šią komandą:
$išmetė 'Labas, kaip tau sekasi?' | sed 's/h // g'
Kur g reiškia globalų. Tai 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:
$išmetė 'Labas, kaip tau sekasi?' | sed 's /^.//' failą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:
$išmetė 'Labas, kaip tau sekasi?' | sed 's /.$//'Kur ( . ) atitinka tiksliai vieną simbolį ir ($) atitinka bet kurį simbolį eilutės pabaigoje.
Pašalinkite pirmą ir paskutinį simbolį iš eilutės
Norėdami iš eilutės pašalinti pirmą ir paskutinį simbolį Labas, kaip tau sekasi? komanda būtų tokia:
$išmetė 'Labas, kaip tau sekasi?' | sed 's /^.//; s /.$//'
Pašalinkite simbolius iš eilutės naudodami „awk“
„Awk“ yra galinga scenarijų kalba, naudojama modeliams derinti ir tekstui apdoroti. „Awk“ leidžia įvairiais būdais filtruoti ir transformuoti tekstą. Taip pat galite naudoti „awk“, kad pašalintumėte simbolius iš eilučių.
Demonstravimo tikslais naudosime eilutės pavyzdį, o tada įvesime komandą 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:
$išmetė 'Labas, kaip tau sekasi?' | awk '{print substr ($ 0, 2)}'Kur ($ 0) yra visa tikslinė eilutė, o (2) - simbolio pradinė padėtis. Aukščiau pateikta 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ą skaičių simbolių iš eilutės pradžios. Pavyzdžiui, iš eilutės pašalinti pirmuosius du simbolius Labas, kaip tau sekasi? komanda būtų tokia:
$išmetė 'Labas, kaip tau sekasi?' | awk „{spausdinti antrinis (0, 3 USD)}“Aukščiau pateikta 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:
$išmetė 'Labas, kaip tau sekasi?' | awk '{print substr ($ 0, 1, length ($ 0) -1)}')Kur ilgis (0 USD) -1 reiškia išskaičiuoti ' 1 “Nuo viso simbolio ilgio.
Aukščiau pateikta komanda spausdins eilutę, prasidedančią simbolio numeriu „ 1 ' iki ilgis (0 USD) -1 nuimti paskutinį simbolį.
Yra „ 19 “Simboliai (įskaitant tarpus) aukščiau esančioje eilutėje. Komanda veiks spausdindama visus simbolius, pradedant simboliu „ 1 'Ir iki charakterio' 18 , „Pašalinant paskutinį simbolį“ 19 . “.
Pašalinkite paskutinius du simbolius iš eilutės
Norėdami pašalinti paskutinius du simbolius iš Labas, kaip tau sekasi? komanda būtų tokia:
$išmetė 'Labas, kaip tau sekasi?' | awk '{print substr ($ 0, 1, ilgis ($ 0) -2)}'Kur ilgis (0 USD) -2 reiškia išskaičiuoti ' 2 “Nuo viso simbolio ilgio.
Aukščiau pateikta komanda spausdins eilutę, prasidedančią simbolio numeriu „ 1 'Ir iki simbolių skaičiaus' ilgis (0 USD) -2 , “, Kad pašalintumėte paskutinius du simbolius iš eilutės.
Pašalinkite pirmuosius ir paskutinius simbolius iš eilutės
Norėdami iš eilutės pašalinti ir pirmuosius, ir paskutinius simbolius Labas, kaip tau sekasi? komanda būtų tokia:
$išmetė 'Labas, kaip tau sekasi?' | awk '{print substr ($ 0, 2, ilgis ($ 0) - 2)}'Kur ilgis (0 USD) -2 reiškia išskaičiuoti ' 2 “Nuo viso simbolio ilgio.
Aukščiau pateikta komanda spausdins eilutę, prasidedančią simbolio numeriu „ 2 „Iki simbolių skaičiaus“ ilgis (0 USD) -2 , “, Kad pašalintumėte pirmą ir paskutinį simbolį.
Pašalinkite simbolį iš eilutės naudodami pjūvį
„Cut“ yra komandų eilutės įrankis, dažniausiai naudojamas ištraukti dalį teksto iš eilutės ar failo ir spausdinti rezultatą į standartinę išvestį. Šią komandą taip pat galite naudoti norėdami pašalinti simbolius iš eilutės.
Demonstravimo tikslais naudosime eilutės pavyzdį, o tada įvesime komandą „cut“.
Pašalinkite pirmąjį simbolį iš eilutės
Norėdami iš eilutės pašalinti pirmąjį simbolį, Labas, kaip tau sekasi? komanda būtų tokia:
$išmetė 'Labas, kaip tau sekasi?' | supjaustyti -c 2-Ši komanda išspausdins eilutę, prasidedančią antruoju simboliu, ir pašalins pirmąjį simbolį.
Pašalinkite pirmuosius keturis simbolius iš eilutės
Norėdami iš eilutės pašalinti pirmuosius keturis simbolius Labas, kaip tau sekasi? komanda būtų tokia:
$išmetė 'Labas, kaip tau sekasi?' | supjaustyti -c 5-Ši komanda išspausdins eilutę, pradedant nuo penktojo simbolio, pašalindama pirmuosius keturis simbolius.
Spausdinimo eilutė tarp 2 ir 5 simbolių
Norėdami spausdinti eilutę Labas, kaip tau sekasi? tarp antro ir penkto simbolių , komanda būtų tokia:
$išmetė 'Labas, kaip tau sekasi?' | supjaustyti -c 2-5Ši komanda spausdins eilutę, pradedant nuo antrojo simbolio ir baigiant penktu simboliu, pašalindama 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 komanduoti su rev , taip:
$išmetė 'Labas, kaip tau sekasi?' | rev | supjaustyti -c2- | revŠi komanda veikia pirmiausia pakeisdama eilutę, tada nukirpdama pirmąjį simbolį ir galiausiai vėl ją apversdama, kad gautumėte norimą išvestį.
Pašalinkite paskutinius keturis simbolius iš eilutės
Norėdami iš eilutės pašalinti keturis paskutinius simbolius Labas, kaip tau sekasi? komanda būtų tokia:
$išmetė 'Labas, kaip tau sekasi?' | rev | supjaustyti -c5- | revŠi komanda veikia pirmiausia pakeisdama eilutę, tada nukirpdama pirmuosius keturis simbolius ir vėl ją apversdama, kad gautumėte norimą išvestį.
Pašalinkite pirmuosius ir paskutinius simbolius iš eilutės
Norėdami iš eilutės pašalinti pirmuosius ir paskutinius simbolius Labas, kaip tau sekasi? naudoti supjaustyti komanduoti su rev , taip:
$išmetė 'Labas pasauli!' | supjaustyti -c2- | rev | supjaustyti -c2- |revŠi komanda veikia iškirpdama pirmąjį simbolį, tada apverčiant eilutę ir nukirpdama pirmąjį simbolį, o tada dar kartą apverčiant, kad gautumėte norimą išvestį.
Pašalinkite simbolį iš eilutės naudodami tr
Komanda tr (trumpas vertimas) naudojama verčiant, suspaudžiant ir ištrinant simbolius iš eilutės. Taip pat galite naudoti tr, kad pašalintumėte simbolius iš eilutės.
Demonstravimo tikslais naudosime eilutės pavyzdį, o tada įvesime komandą tr.
Pašalinkite visus charakterio įvykius
Naudodami komandą tr, iš eilutės galite pašalinti visus mažųjų arba didžiųjų simbolių atvejus. Pavyzdžiui, norint iš eilutės pašalinti visus mažosios raidės „h“ atvejus, komanda būtų tokia:
$išmetė 'Labas, kaip tau sekasi?' | NS -dh
Panašiai, norint iš eilutės pašalinti visus didžiųjų raidžių „H“ atvejus, komanda būtų tokia:
$išmetė 'Labas, kaip tau sekasi?' | NS -dHTaip pat galite naudoti aiškinamas sekas, kad pašalintumėte mažąsias arba didžiąsias raides:
$išmetė 'Labas, kaip tau sekasi?'| NS -d [: viršutinė:]$išmetė 'Labas, kaip tau sekasi?'| NS -d [: žemesnis:]
Pašalinkite visus mažųjų ir didžiųjų raidžių įvykius
Taip pat iš eilutės galite pašalinti visus mažųjų ir didžiųjų simbolių atvejus. Pavyzdžiui, ši komanda pašalins visus „h“ simbolio atvejus, tiek mažąsias, tiek didžiąsias.
$išmetė 'Labas, kaip tau sekasi?' | NS -d'HH'
Pašalinkite visus tam tikro diapazono simbolių atvejus
Norėdami pašalinti visus simbolių atvejus iš eilutės konkrečiame diapazone „d-h“, komanda būtų tokia:
$išmetė 'Labas, kaip tau sekasi?' | NS -d „d-h“Ši komanda pašalins visus simbolius iš eilutės „d-h“ (d, e, f, g, h).
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. Šiame straipsnyje buvo parodyti keturi skirtingi būdai tai padaryti, taip pat keli pavyzdžiai, kaip pašalinti nepageidaujamus simbolius iš eilutės. Sprendimas, kurį įrankį naudoti, priklauso nuo jūsų pageidavimų ir, dar svarbiau, nuo to, ko norite pasiekti.