[BASH] Usuwanie pustych znaków z lewej strony
- rryk
- Serdeczny Borsuk
- Posty: 206
- Rejestracja: 04 mar 2008, 16:00
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.04
- Środowisko graficzne: GNOME
- Kontakt:
[BASH] Usuwanie pustych znaków z lewej strony
Jak usunąć znaki typu spacja lub tabulator z lewej strony?? lub ew. z obydwu stron...
- beluosus
- Zakręcona Traszka
- Posty: 695
- Rejestracja: 01 paź 2006, 15:32
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: Xfce
- Architektura: x86
- Kontakt:
Odp: [BASH] Usuwanie pustych znaków z lewej strony
man sed!

Kod: Zaznacz cały
sed 's/^\s\+//'
- kamilsilver
- Serdeczny Borsuk
- Posty: 105
- Rejestracja: 06 lis 2008, 21:53
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: KDE Plasma
- Architektura: x86
Odp: [BASH] Usuwanie pustych znaków z lewej strony
A awk (ucina z obu stron):
Kod: Zaznacz cały
zmienna="$(echo "$zmiennaZeSpacjami" | awk '{gsub(/^ +| +$/,"")}1')"
echo "'$zmienna'"
Temat rozwiązany? Dodaj [solved] w tytule tematu 
Inny OS => Debian Squeeze (testing)

Inny OS => Debian Squeeze (testing)
- sulti
- Serdeczny Borsuk
- Posty: 139
- Rejestracja: 17 wrz 2007, 15:31
- Płeć: Mężczyzna
- Wersja Ubuntu: 12.10
- Środowisko graficzne: Unity
- Architektura: x86
Odp: [BASH] Usuwanie pustych znaków z lewej strony
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
You tried, and you failed, so the lesson is, never try.
- kamilsilver
- Serdeczny Borsuk
- Posty: 105
- Rejestracja: 06 lis 2008, 21:53
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: KDE Plasma
- Architektura: x86
Odp: [BASH] Usuwanie pustych znaków z lewej strony
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'
Temat rozwiązany? Dodaj [solved] w tytule tematu 
Inny OS => Debian Squeeze (testing)

Inny OS => Debian Squeeze (testing)
- sulti
- Serdeczny Borsuk
- Posty: 139
- Rejestracja: 17 wrz 2007, 15:31
- Płeć: Mężczyzna
- Wersja Ubuntu: 12.10
- Środowisko graficzne: Unity
- Architektura: x86
Odp: [BASH] Usuwanie pustych znaków z lewej strony
Heh, faktycznie sprytne 

You tried, and you failed, so the lesson is, never try.
- beluosus
- Zakręcona Traszka
- Posty: 695
- Rejestracja: 01 paź 2006, 15:32
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: Xfce
- Architektura: x86
- Kontakt:
Odp: [BASH] Usuwanie pustych znaków z lewej strony
Ale dlaczego nie? Do tego one służą, tak czy siak uruchamiasz dodatkowy program ale w Twoim przypadku wyjście przekazujesz "na około".sulti pisze:Nie zatrudniając do tego zadania pipe'ów
Może i prościej ale to nie trim tylko usuwanie wszystkich podwójnych spacji, co niekoniecznie może być pożądane.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'
EDIT:
Usuwa nie tylko podwójne spacje ale właściwie wszystkie podwójne białe znaki.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 10 gości