Awk

Awk Trim -välilyönti

Awk Trim -välilyönti
Ohjelmoijana saatat joutua työskentelemään eri tiedostojen kanssa tietojen tallentamiseksi ja käsittelemiseksi. Yksi perustiedostojen käsittelytehtävä sisältää tyhjien tilojen poistamisen tiedostoista. Välilyönnit koostuvat välilyönneistä, tyhjistä viivoista, nbsp: stä ja välilehdistä. Ohjelmoijien on usein poistettava tyhjät tilat, jotta vain tarvittavat tiedot tallennetaan ja tarpeettomat tyhjät tilat voidaan poistaa. Välilyönnit voivat joko johtaa (rivin alussa) tai perässä (rivin lopussa) välilyöntejä.

Seuraavassa on joitain skenaarioita, joissa välilyöntien poistaminen saattaa olla tarpeen:

Välilyönnit on mahdollista poistaa manuaalisesti, jos tiedosto, joka sisältää vain muutaman rivin. Mutta tiedostolle, joka sisältää satoja rivejä, on vaikea poistaa kaikkia välilyöntejä manuaalisesti. Tähän tarkoitukseen on saatavana useita komentorivityökaluja, kuten sed, awk, cut ja tr. Näiden työkalujen joukossa awk on yksi tehokkaimmista komennoista.

Mikä on Awk?

Awk on tehokas ja hyödyllinen komentosarjakieli, jota käytetään tekstinkäsittelyssä ja raporttien luomisessa. Awk-komento lyhennetään nimikirjaimilla jokaisella ihmisellä (Aho, Weinberger ja Kernighan), joka sen kehitti. Awk antaa sinun määrittää muuttujia, numeerisia funktioita, merkkijonoja ja aritmeettisia operaattoreita; luoda muotoiltuja raportteja; ja enemmän.

Tässä artikkelissa selitetään awk-komennon käyttö välilyöntien rajaamiseen. Kun olet lukenut tämän artikkelin, opit käyttämään awk-komentoa seuraavasti:

Tämän artikkelin komennot suoritettiin Ubuntu 20: lla.04 Focal Fossa -järjestelmä. Samat komennot voidaan kuitenkin suorittaa myös muissa Linux-jakeluissa. Käytämme oletus Ubuntu Terminal -sovellusta tässä artikkelissa olevien komentojen suorittamiseen. Pääset päätelaitteeseen näppäimistön Ctrl + Alt + T avulla.

Esittelytarkoituksiin käytämme näytetiedostoa nimeltä “näyte.txt.”Suorittaa tässä artikkelissa annettuja esimerkkejä.

Näytä kaikki tiedoston tyhjät välit

Jos haluat tarkastella kaikkia tiedostossa olevia välilyöntejä, liitä cat-komennon lähtö tr-komentoon seuraavasti:

$ kissanäyte.txt | tr "" "*" | tr "\ t" "&"

Tämä komento korvaa kaikki annetun tiedoston välilyönnit (*) -merkillä. Kun olet syöttänyt tämän komennon, näet selvästi missä kaikki tyhjät tilat (mukaan lukien sekä etu- että perässä olevat tyhjät tilat) ovat tiedostossa.

Seuraavan kuvakaappauksen * merkit osoittavat, missä kaikki välilyönnit ovat näytetiedostossa. Yksi * edustaa yhtä tyhjää tilaa.

Leikkaa kaikki tyhjät tilat

Poista kaikki välilyönnit tiedostosta viemällä out of cat -komento awk-komentoon seuraavasti:

$ kissanäyte.txt | awk 'gsub (/ /, ""); Tulosta '

Missä

Yllä oleva komento korvaa kaikki välilyönnit (/ /) ei millään (“”).

Seuraavassa kuvakaappauksessa näet, että kaikki välilyönnit, mukaan lukien etu- ja perätilat, on poistettu tulosteesta.

Leikkaa johtavat tyhjät tilat

Poista vain johtavat välilyönnit tiedostosta viemällä out of cat -komento awk-komentoon seuraavasti:

$ kissanäyte.txt | awk 'sub (/ ^ [\ t] + /, ""); Tulosta '

Missä

Yllä oleva komento korvaa yhden tai useamman merkkijonon alussa olevan välilyönnin (^ [\ t] +) ei millään (“”) poistaaksesi johtavat välilyönnit.

Seuraavassa kuvakaappauksessa näet, että kaikki johtavat tyhjät tilat on poistettu tulosteesta.

Voit käyttää seuraavaa komentoa varmistaaksesi, että yllä oleva komento on poistanut johtavat välilyönnit:

$ kissanäyte.txt | awk 'sub (/ ^ [\ t] + /, ""); tulosta '| tr "" "*" |
tr "\ t" "&"

Alla olevassa kuvakaappauksessa on selvästi nähtävissä, että vain johtavat tyhjät tilat on poistettu.

Trim jäljellä olevat tyhjät tilat

Jos haluat poistaa vain jäljellä olevat välilyönnit tiedostosta, vie out of cat -komento awk-komentoon seuraavasti:

$ kissanäyte.txt | awk 'sub (/ [\ t] + $ /, ""); Tulosta '

Missä

Yllä oleva komento korvaa yhden tai useamman merkkijonon lopussa olevan välilyönnin ([\ t] + $) ei millään (“”) poistamaan jäljessä olevat välilyönnit.

Voit käyttää seuraavaa komentoa varmistaaksesi, että yllä oleva komento on poistanut jäljessä olevat tyhjät välit:

$ kissanäyte.txt | awk 'sub (/ [\ t] + $ /, ""); tulosta '| tr "" "*" | tr "\ t" "&"

Alla olevasta kuvakaappauksesta on selvästi nähtävissä, että takana olevat tyhjät tilat on poistettu.

Leikkaa sekä johtavat että perässä olevat tyhjät tilat

Jos haluat poistaa sekä etu- että lopun välilyönnit tiedostosta, vie out of cat -komento awk-komentoon seuraavasti:

$ kissanäyte.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); Tulosta '

Missä

Yllä oleva komento korvaa sekä etu- että perätilat (^ [\ t]+ [\ t] + $) ilman mitään (“”) niiden poistamiseksi.

Käytä seuraavaa komentoa selvittääksesi, onko yllä oleva komento poistanut sekä tiedoston etu- että loppuosan välilyönnit:

$ kissanäyte.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); tulosta '|
tr "" "*" | tr "\ t" "&"

Alla olevasta kuvakaappauksesta on selvästi nähtävissä, että sekä etu- että takaosan välilyönnit on poistettu ja vain merkkijonojen väliset tyhjät tilat ovat jäljellä.

Korvaa useita välilyöntejä yhdellä välilyönnillä

Jos haluat korvata useita välilyöntejä yhdellä välilyönnillä, liitä out of cat -komento awk-komentoon seuraavasti:

$ kissanäyte.txt | awk 'gsub (/ [] + /, ""); Tulosta '

Missä:

Yllä oleva komento korvaa useita välilyöntejä ([] +) yhdellä välilyönnillä (““).

Voit käyttää seuraavaa komentoa varmistaaksesi, että yllä oleva komento on korvannut useita välilyöntejä välilyönneillä:

$ kissanäyte.txt | awk 'sub (/ [\ t] + $ /, ""); tulosta '| | tr "" "*" | tr "\ t" "&"

Näytetiedostossamme oli useita välilyöntejä. Kuten näette, näytteessä on useita välilyöntejä.txt-tiedosto korvattiin yhdellä välilyönnillä awk-komennolla.

Jos haluat rajata välilyöntejä vain niillä riveillä, jotka sisältävät tietyn merkin, kuten pilkku, kaksoispiste tai puolipiste, käytä awk-komentoa -F tulonerotin.

Esimerkiksi alla on esimerkkitiedostomme, joka sisältää välilyöntejä kullakin rivillä.

Jos haluat poistaa välilyönnit vain pilkuilla (,) olevista riveistä, komento olisi seuraava:

$ kissanäyte 1.txt | awk -F, '/, / gsub (/ /, ""); Tulosta'

Missä (-F,) on syöttökentän erotin.

Yllä oleva komento poistaa ja näyttää vain välilyönnit riveiltä, ​​jotka sisältävät niissä määritetyn merkin (,). Muut linjat pysyvät ennallaan.

Johtopäätös

Se on kaikki mitä sinun on tiedettävä, kun haluat rajata tietosi tyhjät tilat awk-komennolla. Välilyöntien poistaminen tiedoistasi saattaa olla tarpeen useista eri syistä. Mikä tahansa syy on, voit helposti leikata kaikki tietosi tyhjät tilat tässä artikkelissa kuvattujen komentojen avulla. Voit jopa leikata etu- tai takaosan välilyöntejä, leikata sekä etu- että loppuvalotiloja ja korvata useita välilyöntejä yhdellä välilyönnillä awk-komennolla.

Kuinka näyttää FPS-laskuri Linux-peleissä
Linux-pelaaminen sai suuren työn, kun Valve ilmoitti Linux-tuesta Steam-asiakkaalle ja heidän peleilleen vuonna 2012. Siitä lähtien monet AAA- ja indi...
How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...
How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...