sed Removing whitespace around certain character
11,812
Solution 1
If you mean all whitespace, not just spaces, then you could try \s
:
echo 'Some- String- 12345- Here' | sed 's/\s*-\s*/-/g'
Output:
Some-String-12345-Here
Or use the [:space:]
character class:
echo 'Some- String- 12345- Here' | sed 's/[[:space:]]*-[[:space:]]*/-/g'
Different versions of sed may or not support these, but GNU sed does.
Solution 2
Try:
's/ *- */-/g'
Solution 3
you can use awk as well
$ echo 'Some - String- 12345-' | awk -F" *- *" '{$1=$1}1' OFS="-"
Some-String-12345-
if its just "- " in your example
$ s="Some- String- 12345-"
$ echo ${s//- /-}
Some-String-12345-
Author by
Gargauth
Updated on June 04, 2022Comments
-
Gargauth almost 2 years
what would be the best way to remove whitespace only around certain character. Let's say a dash -
Some- String- 12345- Here
would becomeSome-String-12345-Here
. Something likesed 's/\ -/-/g;s/-\ /-/g'
but I am sure there must be a better way.Thanks!