hallo, ich habe einen string, der hat 100 Zeichen. wie kopiere ich die ersten 10 Zeichen in die Variale mycut? Kann mir jemand ein Beispiel machen, googlet habe ich schon
scriptbau: suchen und kopieren...
|
Anmeldungsdatum: Beiträge: Zähle... |
|
||||
|
Anmeldungsdatum: Beiträge: 17630 |
|
||||
|
Anmeldungsdatum: Beiträge: 2510 |
Doku dazu: http://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion Suchhilfe für’s nächste Mal: „bash substring“ |
||||
|
Anmeldungsdatum: Beiträge: Zähle... |
http://wiki.bash-hackers.org/syntax/pe ich hatte immer nach parameter expansion gesucht. was sonst immer geht und super einfach ist echo STRING12345678910 |cut -c 1-10 . Nicht schön aber die Syntax ist einfach einfach 😉 |
||||
|
Anmeldungsdatum: Beiträge: 17630 |
Oder:
oder
|
||||
|
Anmeldungsdatum: Beiträge: 7174 |
... ist aber teilweise bösartig, weil es mit Mehr-Byte-Zeichen (→ utf-8) nicht korrekt umgeht ! (die Par. Expansion ist da sauber) - Guckstu: track@track:~$ echo STRING12345678910 | cut -c 1-10
STRING1234
track@track:~$ echo STRÄNG12345678910 | cut -c 1-10
STRÄNG123
track@track:~$ w=STRING12345678910
track@track:~$ echo ${w:0:10}
STRING1234
track@track:~$ w=STRÄNG12345678910
track@track:~$ echo ${w:0:10}
STRÄNG1234 LG, track |
||||
|
Anmeldungsdatum: Beiträge: 17630 |
Das war meinerseits aber Glück, das hatte ich auch nicht auf dem Schirm. |
||||
|
Anmeldungsdatum: Beiträge: 2510 |
Wie gemein. Das wusste ich auch nicht. Beziehungsweise, ich dachte, dass genau dafür die Unterscheidung zwischen „ http://unix.stackexchange.com/questions/163721/can-not-use-cut-c-characters-with-utf-8 In OpenBSD hingegen: # export LANG=en_US.UTF-8 # echo STRÄNG7890xxxxxxxxxxx | cut -c 1-10 STRÄNG7890 # echo STRÄNG7890xxxxxxxxxxx | cut -c 4 Ä Und „ # echo STRÄNG7890xxxxxxxxxxx | cut -b 4 � # echo STRÄNG7890xxxxxxxxxxx | cut -b 4-5 Ä So hätte ich das auch im GNU-Land erwartet. 😲 |