Om jag har en sträng som ser ut något i stil med följande:
Abc.def-aaa.bbb
Abc.232_a.3d.2c
Hej.På.Dig-123.hej
Så vill jag plocka ut all text fram till sista punkten oberoende på vad det är för tecken innan. Dvs, jag vill få ut följande:
Abc.def-aaa
Abc.232_a.3d
Hej.På.Dig-123
Ett sätt att lösa det:
echo "text.att.behandla.här" | sed -e 's/\(.*\)\(\.[^\.]*\)/\1/'
Men som vanlig i *nix finns det mer än ett sätt att flå en katt... Du kan använda sed, awk eller perl för regexes. Du kan antagligen använda bashs egen pattern matching (om jag minns rätt, se '%%', '##' och vänner).
echo "Abc.232_a.3d.2c" | rev | cut -d "." -f2-1000 | rev
Copyright © 1999–2024 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.