Sed og mellemrum
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
bliver til
Dette burde kunne gøres med sed, som jeg slet ikke er inde i. Indtil videre har fundet ud af, at
fjerner alle forekomster af 3 eller flere mellemrum, men jeg vil jo gerne have slutningen af linierne fjernet samtidig.
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.
Kommentarer5
Sed og mellemrum
#!/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.
Et forsøg fra en ikke-guru
Test test bla bla
Re: Sed og mellemrum
cat "$FILE0" | \
sed -e '
s/\s\{3,\}/&\
/
s/\n.*//
' > "$FILE00"
Re: Sed og mellemrum
#4 virker ikke hos mig.
Hvis
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'