Rensa bort överflödiga blanktecken i en sträng

Generella Linux-frågor och frågor gällande Linuxmjukvara som saknar egen forumkategori skall postas i detta forum
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
bjorktorp
Gillar hemautomation
Inlägg: 47
Blev medlem: 13 feb 2007, 13:55
Ort: Gistad

Rensa bort överflödiga blanktecken i en sträng

Inlägg av bjorktorp »

Idag är jag lat. Istället för att läsa på själv så prövar jag att kasta ut en fråga här:

I ett bash-skript vill jag kunna rensa bort blanktecken (mellanslag), om det finns fler än ett i rad, så att övriga tecken i raden separeras av endast ett blanktecken (mellanslag)

Därefter ska jag lätt kunna göra cut -d' ' för att hitta den delsträng jag vill fortsätta att jobba med är tanken.

Någon som har en spontan idé hur man tar bort mellanslagen?

/Roger
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5420
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Inlägg av elf98 »

sed -e s/" "//g
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
Användarvisningsbild
Dowser
Hemautomation - det är mer än en hobby
Inlägg: 811
Blev medlem: 10 mar 2007, 09:44
Ort: Trosa
Kontakt:

Inlägg av Dowser »

Kommer inte detdär att ta bort *alla* mellanslag?
Borde itne sed -e s/" "/" "/g bli bättre?
(Borde köra man sed först, för du *är* bättre på det än mig. :) )
otto
Wannabe
Inlägg: 13
Blev medlem: 26 apr 2007, 17:14
Ort: Linköping

Inlägg av otto »

sed -r -e "s/\s+/ /g"
The_donk
Tar hemautomation på allvar
Inlägg: 134
Blev medlem: 27 apr 2007, 16:53
Ort: Stockamöllan

Inlägg av The_donk »

fattar ni hur nördiga de raderna ser ut. :)
jag fattar inte ett smack, och sedan kommer jag ihåg att man var guru om man kunde mer än 5 kommando i dos. Det var tider det...

Ärligt talat, kan ni inte föklara strängarna? Vem vet, temperatur.nu kommer kanske att sluta som ett riktigt linux FAQ
bjorktorp
Gillar hemautomation
Inlägg: 47
Blev medlem: 13 feb 2007, 13:55
Ort: Gistad

Inlägg av bjorktorp »

Otto: Du är en hejare! Precis vad jag var ute efter. Ja, jag har testkört.

Nu ska jag läsa på lite om sed också för framtida bruk. Så måste jag ju också kolla vad ditt tecken-hokus-pokus egentligen står för. Som The Donk antyder så blir ofta sed strängar lite trolleriaktiga.

Tackar hjärtligast!

/Roger
ansim
Gillar hemautomation
Inlägg: 38
Blev medlem: 14 dec 2007, 21:56
Ort: Ljungsbro

Inlägg av ansim »

varför använda cut -d?
Du blir väldigt positionsberoende.
Testa med awk '{ print $2 }'. Detta skriver ut 2a fältet i en sträng

kör hela sed och skicka direkt till awk:
# sed -r -e "s/\s+/ /g" | awk '{ print $3 }'

Detta skriver ut 3e fältet i strängen.
Vill du byta fältseparator(tecken mellan fälten) till "_" t.ex, använd awk -F_

//Anders
bjorktorp
Gillar hemautomation
Inlägg: 47
Blev medlem: 13 feb 2007, 13:55
Ort: Gistad

cut - awk

Inlägg av bjorktorp »

Ja, varför använda cut?
Jo därför att jag är en rookie på detta och cut var det första jag hittade som gjorde jobbet, men jag tar varje tillfälle jag får för att lära mig nå't nytt.

Tack för awk-förslaget!

/Roger
Skriv svar