String.trim() mit bash
String.trim() mit bash
hi
Ich bin gerade dabei ein Bashscript zu basteln. Dazu benötige ich irgendwas mit der Funktion trim() wie in Java (soll heissen, dass alle spaces, tabs und returns vorne und hinten weggeschnitten werden. ). Ich bin schon längere Zeit beim Suchen, finde aber nichts.
Weiss einer von euch weiter?
bye
Ich bin gerade dabei ein Bashscript zu basteln. Dazu benötige ich irgendwas mit der Funktion trim() wie in Java (soll heissen, dass alle spaces, tabs und returns vorne und hinten weggeschnitten werden. ). Ich bin schon längere Zeit beim Suchen, finde aber nichts.
Weiss einer von euch weiter?
bye
Hi!
Ist nicht ganz so elegant wie trim, sollte aber funktionieren
Gruß, <mawe>
Code: Alles auswählen
echo " so many spaces " | sed 's/^ *//' | sed 's/ *$//'
Gruß, <mawe>
Hi,
bei einer zuweisung zu einer Variablen wird automatisch getrimmt
Gruß
Dookie
bei einer zuweisung zu einer Variablen wird automatisch getrimmt
Code: Alles auswählen
fritz@seneca:~$ test=" so many spaces "
fritz@seneca:~$ echo $test
so many spaces
Dookie
- peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
bei echo wird automatisch getrimt, nicht bei Variablenzuweisung:
MfG Peschmä
Code: Alles auswählen
test=" so many spaces "
set|grep test
test=' so many spaces '
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy
uups stimmtbei echo wird automatisch getrimt, nicht bei Variablenzuweisung
Hab da eine Lösung die Python zuhilfe nimmt.
Code: Alles auswählen
fritz@seneca:~$ test=" \t so many spaces and others \n "
fritz@seneca:~$ test2=`python -c "print \"$test\".strip()"`
fritz@seneca:~$ set|grep test2
test2='so many spaces'
Dookie
- peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
oh, ich hab die Fortsetzung vergessen
MfG Peschmä
Code: Alles auswählen
peschmae@thinkpad:~$ test=" so many spaces "
peschmae@thinkpad:~$ set|grep ^test
test=' so many spaces '
peschmae@thinkpad:~$ test=$(echo $test)
peschmae@thinkpad:~$ set|grep ^test
test='so many spaces'
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy
das kann man auch in einen regex schreiben:<mawe> hat geschrieben:Hi!
Ist nicht ganz so elegant wie trim, sollte aber funktionierenCode: Alles auswählen
echo " so many spaces " | sed 's/^ *//' | sed 's/ *$//'
Gruß, <mawe>
Code: Alles auswählen
echo " so many spaces " | sed 's/^ *\.* *//'
Hi!
@Blooddrinker: Nicht ganz. Versuch mal das
Gruß, <mawe>
@Blooddrinker: Nicht ganz. Versuch mal das
Code: Alles auswählen
echo -n " so many spaces " | sed 's/^ *\.* *//' && echo -
- peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
Sind zwar alle auf Englisch...
http://www.grymoire.com/Unix/index.html
http://www.student.northpark.edu/pemente/sed/
und vor allem das OReilly-Buch Sed & Awk:
http://polymer.bu.edu/~fding/sedawk/
MfG Peschmä
http://www.grymoire.com/Unix/index.html
http://www.student.northpark.edu/pemente/sed/
und vor allem das OReilly-Buch Sed & Awk:
http://polymer.bu.edu/~fding/sedawk/
MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy
- mistersixt
- Beiträge: 6601
- Registriert: 24.09.2003 14:33:25
- Lizenz eigener Beiträge: GNU Free Documentation License
Damit bekommt man aber keine Tabulatoren weg, daher wäre der hier wahrscheinlich noch sinnvoller:Blooddrinker hat geschrieben:das kann man auch in einen regex schreiben:<mawe> hat geschrieben:Hi!
Ist nicht ganz so elegant wie trim, sollte aber funktionierenCode: Alles auswählen
echo " so many spaces " | sed 's/^ *//' | sed 's/ *$//'
Gruß, <mawe>Code: Alles auswählen
echo " so many spaces " | sed 's/^ *\.* *//'
Code: Alles auswählen
echo -e " \t so many spaces " | sed 's/^[ \t]*//;s/[ \t]*$//'
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE
Hi!
@mistersixt:
Oder gleich so:
Gruß, <mawe>
@mistersixt:
Oder gleich so:
Code: Alles auswählen
echo -e " \t so many spaces " | sed 's/^\s*//;s/\s*$//'