Strona 1 z 1

[BASH] Usuwanie pustych znaków z lewej strony

: 31 maja 2010, 16:02
autor: rryk
Jak usunąć znaki typu spacja lub tabulator z lewej strony?? lub ew. z obydwu stron...

Odp: [BASH] Usuwanie pustych znaków z lewej strony

: 31 maja 2010, 16:24
autor: beluosus
man sed! :P

Kod: Zaznacz cały

sed 's/^\s\+//'

Odp: [BASH] Usuwanie pustych znaków z lewej strony

: 01 cze 2010, 12:00
autor: kamilsilver
A awk (ucina z obu stron):

Kod: Zaznacz cały

zmienna="$(echo "$zmiennaZeSpacjami" | awk '{gsub(/^ +| +$/,"")}1')"
echo "'$zmienna'"

Odp: [BASH] Usuwanie pustych znaków z lewej strony

: 01 cze 2010, 12:32
autor: sulti
Nie zatrudniając do tego zadania pipe'ów można to zrobić tak:

Kod: Zaznacz cały

old="    test"
echo "$old"
    test
new=`expr match "$old" '[ ]*\(.*\)'`
echo "$new"
test

Odp: [BASH] Usuwanie pustych znaków z lewej strony

: 01 cze 2010, 12:58
autor: kamilsilver
A prościej bashem:

Kod: Zaznacz cały

$ a="  zmienna ze zbednymi spacjami do trima    "
$ echo "'$a'"
'  zmienna ze zbednymi spacjami do trima    '
$ b=$(echo $a)
$ echo "'$b'"
'zmienna ze zbednymi spacjami do trima'

Odp: [BASH] Usuwanie pustych znaków z lewej strony

: 01 cze 2010, 13:13
autor: sulti
Heh, faktycznie sprytne :)

Odp: [BASH] Usuwanie pustych znaków z lewej strony

: 01 cze 2010, 13:19
autor: beluosus
sulti pisze:Nie zatrudniając do tego zadania pipe'ów
Ale dlaczego nie? Do tego one służą, tak czy siak uruchamiasz dodatkowy program ale w Twoim przypadku wyjście przekazujesz "na około".
kamilsilver pisze:A prościej bashem:

Kod: Zaznacz cały

$ a="  zmienna ze zbednymi spacjami do trima    "
$ echo "'$a'"
'  zmienna ze zbednymi spacjami do trima    '
$ b=$(echo $a)
$ echo "'$b'"
'zmienna ze zbednymi spacjami do trima'
Może i prościej ale to nie trim tylko usuwanie wszystkich podwójnych spacji, co niekoniecznie może być pożądane.

EDIT:
Usuwa nie tylko podwójne spacje ale właściwie wszystkie podwójne białe znaki.