• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af sjofelpanda | 08.06.2010 16:10

Sed og mellemrum

Hjælp generelt
Hej alle sed-guruer.

Jeg har en tekstfil, som indeholder adskillige linier der ender med en masse mellemrum (flere end 3) efterfuldt af en række forskellige tal (typisk fire tal). Dette vil jeg gerne fjerne, så linien


Test test bla bla 1985


bliver til


Test test bla bla


Dette burde kunne gøres med sed, som jeg slet ikke er inde i. Indtil videre har fundet ud af, at


cat "$FILE0" | \
sed -e 's/\s\{3,\}/ /g' > "$FILE00"


fjerner alle forekomster af 3 eller flere mellemrum, men jeg vil jo gerne have slutningen af linierne fjernet samtidig.
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer5

# 1

15 år 1 måned siden

Permalink

Indsendt af mich den 8. juni 2010 kl. 17:33

Permalink

Sed og mellemrum

Jeg er ingen ørn til sed, men følgende bash-script skulle kunne gøre det.

#!/bin/bash

while read line ;do
echo "${line%% *}" >> "$File00"
done < "$File0"

Det sletter fra og med de første tre mellemrum og resten af linien, linie for linie i filen "$File0" og skriver til "$File00".
Skal du behandle flere filer, skal der lidt 'for File0 in ' osv med.

Prøv på en kopi først. Jeg påtager mig intet ansvar, hvis du sletter vigtige filer.

  • Log ind eller opret dig for at tilføje kommentarer

# 2

15 år siden

Permalink

Indsendt af mrbrown79 den 11. juni 2010 kl. 15:31

In reply to Sed og mellemrum by mich

Permalink

Et forsøg fra en ikke-guru

$ echo "Test test bla bla 1985" | sed 's/\(.*\) \{3,\}.*$/\1/'
Test test bla bla
  • Log ind eller opret dig for at tilføje kommentarer

# 3

15 år 1 måned siden

Permalink

Indsendt af sjofelpanda den 8. juni 2010 kl. 19:29

Permalink

Re: Sed og mellemrum

Tak for forslaget. Jeg kunne ikke helt få dit bash-script til at fungere præcis som jeg ville. Jeg har fandt dog frem til følgende, som virker:


cat "$FILE0" | \
sed -e '
s/\s\{3,\}/&\
/
s/\n.*//
' > "$FILE00"
  • Log ind eller opret dig for at tilføje kommentarer

# 4

15 år 1 måned siden

Permalink

Indsendt af redeeman den 9. juni 2010 kl. 02:29

Permalink

Re: Sed og mellemrum

cat fil.txt | awk '{print $1 " " $2 " " $3}'
  • Log ind eller opret dig for at tilføje kommentarer

# 5

15 år siden

Permalink

Indsendt af marlar den 11. juni 2010 kl. 16:22

Permalink

#4 virker ikke hos mig.
Hvis

#4 virker ikke hos mig.

Hvis det bare handler om at fjerner tal i slutningen af en linje, virker dette:

echo "Test test bla bla 1985" | sed -r 's/[0-9]+$//g'
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

den er sjov 0
llumos Unix-operativsystem, 0
Den er go 0
14. februar = I Love Free Software Day 0
Lokal fil-deling - for de dovne. 0

Seneste aktivitet

Reserve kernel og btrfs 2
En snak om Linux-kompatibel software 12
PCLinuxOS 28
"Intet realistisk alternativ" - mig i r*ven 17
Open source events i danmark? 3
Virtuel maskine? 4
Gode anmeldelser Zorin OS 17.3 8
Open Source-eksperimentet 5
Nulstilling af adgangskode 6
Ingen Mint 5
Linux App Store Flathub når 3 milliarder downloads 2
Digitaliseringsministeriet sætter gang i pilotprojekt om digital suverænitet 3
Mest sikker webbrowser 5
Firefox 2
Privatbeskeder 7
Backup/synkronisering? 3
BigLinux 5
Chatgpt satire 1
Læsning af databasefil i Firefox 2
Vanilla OS 15

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !