Hallo
Ich möchte in einem Shellscript einen String auseinandernehmen(= die ersten drei Zeichen erhalten)
Danke im voraus, Stefan
Hallo,
Ich möchte in einem Shellscript einen String
auseinandernehmen(= die ersten drei Zeichen erhalten)
Danke im voraus, Stefan
$ FOO=abcdefghi
$ BAR=`echo $FOO|perl -pe '$_=substr $_, 0, 3'`
$ echo $BAR
abc
Wenn du an bestimmten Trennzeichen zerlegen willst kannst du `cut’ nehmen.
Grüße,
Moritz
Wenn du an bestimmten Trennzeichen zerlegen willst kannst du
`cut’ nehmen.
Schon mal Danke dafür. Aber wie geht das mit cut? Aus der manpage werde ich nicht schlau.
Stefan
Args! Perl! Hilfe! Gleich kommt einer und wird awk dafuer verwenden.
Schon mal Danke dafür. Aber wie geht das mit cut? Aus der
manpage werde ich nicht schlau.
Wieso nicht? Du willst die ersten drei (also alles bis 3) characters (also -c) haben. cut funktioniert ungefaehr so:
[10053] (0) frank@harbard [~] % echo "foobar" |cut -c-3
foo
[10054] (0) frank@harbard [~] % echo "foobar" |cut -c2-3,5
ooa
[10055] (0) frank@harbard [~] % echo "foobar" |cut -c2-3,5-
ooar
[10056] (0) frank@harbard [~] %
HTH,
Gruss vom Frank.
Args! Perl! Hilfe! Gleich kommt einer und wird awk dafuer
verwenden.
Hab ich auch schon drangedacht
Danke Frank, aber Moritz schrieb, cut könne man für Zerlegung an Trennzeichen verwenden. Wie geht das?
MfG, Stefan
Hallo
Ich möchte in einem Shellscript einen String
auseinandernehmen(= die ersten drei Zeichen erhalten)
Danke im voraus, Stefan
Wie Der Frank schon richtig empfiehlt, kann man es mit awk machen.
Welcome to Darwin!
[apfeltasche:~] sschuste% string=foobar
[apfeltasche:~] sschuste% echo | awk '{print substr("'"${string}"'",0,3)}'
foo
Oder aber auch mit
[apfeltasche:~] sschuste% echo ${string:0:3}
foo
[apfeltasche:~] sschuste% echo `expr "$string" : '\(...\)'`
foo
Gruß,
Stefan
Hallo
Ich möchte in einem Shellscript einen String
auseinandernehmen(= die ersten drei Zeichen erhalten)
Danke im voraus, Stefan
Hallo Stefan,
hierzu gibt es viele Lösungen, wie die anderen Antworten schon zeigen. Wenn du wirklich nur die Shell verwenden willst, bietet die z.B. die bash eine ganz einfache Möglichkeit:
${string:stuck\_out\_tongue:osition:length}
Extracts $length characters of substring from $string at $position.
Position fängt hierbei bei 0 an. Bsp.:
\> a="hello world"
\> echo ${a:2:3}
llo
\>
hth
bernhard
Hallo,
Args! Perl! Hilfe! Gleich kommt einer und wird awk dafuer
verwenden.Hab ich auch schon drangedacht
Danke Frank, aber Moritz schrieb, cut könne man für Zerlegung
an Trennzeichen verwenden. Wie geht das?
echo "foo|bar|baz" | cut -d'|' -f 2
bar
Grüße,
Moritz