sed

Sed Fjern hvitt mellomrom

Sed Fjern hvitt mellomrom
Fjerning av mellomrom i dokumenter er et viktig formateringstrinn som kreves for å forbedre den generelle utformingen av en tekst og for å sikre at data er rene og ryddige. Det hjelper å lagre bare de nødvendige dataene og bli kvitt unødvendige ledende og etterfølgende mellomrom. Følgende er noen scenarier der du kanskje trenger å fjerne mellomrom:

Hvis vi snakker om ledende mellomrom, er de relativt enkle å få øye på som de er i begynnelsen av teksten. Det er imidlertid ikke lett å få øye på de etterfølgende mellomrommene. Det samme er tilfelle med doble mellomrom som det også noen ganger er vanskelig å få øye på. Alt blir mer utfordrende når du trenger å fjerne alle de ledende og etterfølgende mellomrommene fra et dokument som inneholder tusenvis av linjer.

For å fjerne hvite mellomrom fra dokumentet, kan du bruke forskjellige verktøy som awk, sed, cut og tr. I noen andre artikler har vi diskutert bruken av awk for å fjerne de hvite områdene. I denne artikkelen vil vi diskutere bruken av sed for å fjerne hvite rom fra dataene.

Du lærer hvordan du bruker sed til:

Vi kjører kommandoene på Ubuntu 20.04 Focal Fossa. Du kan også kjøre de samme kommandoene på andre Linux-distribusjoner. Vi bruker standard Ubuntu Terminal-applikasjon for å kjøre kommandoene. For å åpne terminalen, bruk hurtigtasten Ctrl + Alt + T.

Hva er Sed

Sed (står for stream editor) er et veldig kraftig og praktisk verktøy i Linux som lar oss utføre grunnleggende tekstmanipuleringer på inngangsstrømmene. Det er ikke en tekstredigerer, men det hjelper å manipulere og filtrere tekst. Den mottar inngangsstrømmene og redigerer den i henhold til brukerens instruksjoner og skriver deretter ut den transformerte teksten på skjermen.

Med sed kan du:

Bruke Sed for å fjerne hvite rom

Vi vil bruke følgende syntaks for å fjerne mellomrom fra teksten:

s / REGEXP / erstatning / flagg

Hvor

Vanlig uttrykk

Noen av de vanlige uttrykkene vi vil bruke her er:

For demonstrasjonsformål vil vi bruke følgende eksempelfil kalt “testfil”.

Vis alle hvite mellomrom i en fil

For å finne alle mellomrommene i filen, rør utgangen fra cat-kommandoen til tr-kommandoen slik:

$ katt testfil | tr "" "*" | tr "\ t" "&"

Denne kommandoen erstatter alle mellomrommene i filen din med (*) -symbolet, noe som gjør det lettere å få øye på alle mellomrommene, enten de er enkle, flere, ledende eller etterfølgende mellomrom.

I det følgende skjermbildet kan du se at mellomrom erstattes av * symbol.

Fjern alle hvite mellomrom (inkludert mellomrom og faner)

I noen tilfeller må du fjerne alle mellomrom fra dataene, dvs.e. ledende, etterfølgende, og mellomrom mellom tekstene. Følgende kommando fjerner alle mellomrommene fra "testfilen".

$ katt testfil | sed -r 's / \ s + // g'

Merk: Sed endrer ikke filene dine med mindre du lagrer utdataene i filen.

Produksjon:

Etter å ha kjørt kommandoen ovenfor, dukket følgende utgang opp, som viser at alle mellomrommene er fjernet fra teksten.

Du kan også bruke følgende kommando for å bekrefte at alle mellomrom er fjernet.

$ katt testfil | sed -r 's / \ s + // g' | tr "" "*" | tr "\ t" "&"

Fra utgangen kan du se at det ikke er noe (*) symbol som betyr at alle mellomrommene er fjernet.

For å fjerne alle mellomrom, men bare fra en bestemt linje (la oss si linje nummer 2), kan du bruke følgende kommando:

$ katt testfil | sed -r '2s / \ s + // g'

Fjern alle ledende hvite mellomrom (inkludert mellomrom og faner)

For å fjerne alle mellomrommene fra begynnelsen av hver linje (ledende mellomrom), bruk følgende kommando:

$ katt testfil | sed 's / ^ [\ t] * //'

Produksjon:

Følgende utdata dukket opp etter å ha kjørt kommandoen ovenfor, som viser at alle de ledende mellomrommene er fjernet fra teksten.

Du kan også bruke følgende kommando for å bekrefte at alle de ledende mellomrommene er fjernet:

$ katt testfil | sed 's / ^ [\ t] * //' | tr "" "*" | tr "\ t" "&"

Fra utgangen kan du se at det ikke er noe (*) symbol i begynnelsen av linjene som bekrefter at alle de ledende mellomrommene er fjernet.

For å fjerne de ledende mellomrommene fra bare en bestemt linje (la oss si linje nummer 2), kan du bruke følgende kommando:

$ katt testfil | sed '2s / ^ [\ t] * //'

Fjern alle hvite mellomrom (inkludert mellomrom og faner)

For å fjerne alle mellomrom fra slutten av hver linje (etterfølgende mellomrom), bruk følgende kommando:

$ katt testfil | sed 's / [\ t] * $ //'

Produksjon:

Følgende utdata dukket opp etter å ha kjørt kommandoen ovenfor, som viser at alle etterfølgende mellomrom er fjernet fra teksten.

Du kan også bruke følgende kommando for å bekrefte at alle etterfølgende mellomrom er fjernet.

$ katt testfil | sed 's / [\ t] * $ //' | tr "" "*" | tr "\ t" "&"

Fra utgangen kan du se at det ikke er noe (*) symbol på slutten av linjene som bekrefter at alle etterfølgende mellomrom er fjernet.

For å fjerne de etterfølgende mellomrommene fra bare en bestemt linje (la oss si linje nummer 2), kan du bruke følgende kommando:

$ katt testfil | sed '2s / [\ t] * $ //'

Fjern både ledende og etterfølgende mellomrom

For å fjerne alle mellomrommene fra både begynnelsen og slutten av hver linje (i.e. både ledende og etterfølgende mellomrom), bruk følgende kommando:

$ katt testfil | sed 's / ^ [\ t] * //; s / [\ t] * $ //'

Produksjon:

Følgende utdata dukket opp etter å ha kjørt kommandoen ovenfor, som viser at både de ledende og etterfølgende mellomrom er fjernet fra teksten.

Du kan også bruke følgende kommando for å bekrefte at både de ledende og etterfølgende mellomrommene er fjernet.

$ katt testfil | sed 's / ^ [\ t] * //; s / [\ t] * $ //' | tr "" "*" | tr "\ t" "&"

Fra utgangen kan du se at det ikke er noe (*) symbol i begynnelsen eller slutten av linjene som bekrefter at alle ledende og etterfølgende mellomrom er fjernet.

For å fjerne både de ledende og etterfølgende mellomrommene fra bare en bestemt linje (la oss si linje nummer 2), kan du bruke følgende kommando:

$ katt testfil | sed '2s / ^ [\ t] * //; 2s / [\ t] * $ //'

Erstatt flere hvite mellomrom med ett hvitt mellomrom

I noen tilfeller er det flere mellomrom på samme sted i filen, men du trenger bare et enkelt mellomrom. Du kan gjøre det ved å erstatte de flere mellomromene med et enkelt mellomrom ved hjelp av sed.

Følgende kommando erstatter alle flere mellomrom med ett mellomrom fra hver linje i "testfilen".

$ katt testfil | sed 's / [] \ + / / g'

Produksjon:

Følgende utdata dukket opp etter å ha kjørt kommandoen ovenfor, som viser at flere mellomrom er erstattet med det eneste hvite området.

Du kan også bruke følgende kommando for å bekrefte om flere mellomrom erstattes med ett enkelt mellomrom:

$ katt testfil | sed 's / [] \ + / / g' | tr "" "*" | tr "\ t" "&"

Fra utgangen kan du se singelsymbolet (*) på hvert sted som bekrefter at alle forekomster av flere hvite mellomrom er erstattet med et enkelt mellomrom.

Så alt handlet om å fjerne de hvite områdene fra dataene dine ved hjelp av sed. I denne artikkelen har du lært hvordan du bruker sed for å fjerne alle mellomrom fra dataene dine, bare fjerne det ledende eller etterfølgende mellomrom og fjerne både ledende og etterfølgende mellomrom. Du har også lært hvordan du erstatter flere mellomrom med ett mellomrom. Det vil nå være enkelt for deg å fjerne mellomrom fra en fil som inneholder hundrevis eller tusenvis av linjer.

Topp 10 spill å spille på Ubuntu
Windows-plattformen har vært en av de dominerende plattformene for spill på grunn av den enorme andelen spill som utvikles i dag for å støtte Windows ...
5 beste arkadespill for Linux
I dag er datamaskiner seriøse maskiner som brukes til spill. Hvis du ikke kan få den nye høye poengsummen, vil du vite hva jeg mener. I dette innlegge...
Kamp for Wesnoth 1.1. 3.6 Utvikling utgitt
Kamp for Wesnoth 1.1. 3.6 utgitt i forrige måned, er den sjette utgivelsen i 1.1. 3.x-serien, og den leverer en rekke forbedringer, spesielt til bruke...