ksh has some really arcane substitution syntax. It's kinda fun but a lot of programmers don't know it, just like folks use only 20% of vi's capability.
Because folks here do not know all of that stuff, I try to use 'understandable' versions. Here is the same thing using expr, which is also portable to other shells.
the substr operand for expr takes:
$a - string to work on
${#a} - a starting point in the string - in this case the
last character ${#a} is the length of a string.
1 - number of characters after the starting point to return
Generally, if you need a lot of string and array features, try bash.
ksh has most of them but some of it is completely counterintuitive. IMO.
Originally posted by dbrundrett Can I ask you to tell me what each bit of this assignment does...
lastchr=${a#${a%?}}
What does 'a#' and 'a%?' do...
Thanks a lot
First ${a%<pattern>} strips the pattern off the end of the contents of the variable. And ? is a pattern that matches a single character. So ${a%?} is $a with the last character missing.
And ${a#<pattern>} strips the pattern off of the front of the variable.
Unlike expr, these are shell built-in's. To run expr, you must fork() and then exec(). Staying with shell built-in's delivers real performance benefits.
Hi,
Anyone can help using SED searches a character string for a specified delimiter character, and returns a leading or trailing space/blank.
Text file :
"1"|"ExternalClassDEA519CF5"|"Art1"
"2"|"ExternalClass563EA516C"|"Art3"
"3"|"ExternalClass305ED16B8"|"Art9"
...
...
... (2 Replies)
Hello, Unix-Forums!
Is there a command that can check how long a user-entered string is?
Please don't give me a code, just the name of the command (playing around yourself is much more fun than just pasting code)
edit: I'm sorry, first hit of the forum search gave me the answer. (1 Reply)
Hello, can someone please explain to me why this happens:
myserver#echo "$nothing"
myserver#if ; then echo "nothing is a zero length string"; fi
nothing is a zero length string
myserver#if ; then echo "nothing is also a non-zero length string, apparently"; fi
nothing is also a non-zero... (5 Replies)
hi
i try to test the last character in a variable (here $i )
assume i=kljlkjlkA it should be KO and lkjljjlT KO
if
then
echo "ending with A"
else
echo "no A at the end"
fi
whether i is ending or not with A i got "no A at the end"
i tried with simple [ double this is the... (3 Replies)
If I have a string defined as:
MyString=abcde
echo $MyString
How can I loop through it character by character? I haven't been able to find a way to index the string so that I loop through it.
shew01 (10 Replies)
i have a file contains like this:
i want to create a script that will insert a comma "." after the 10th character so it would be look like this
thanks in advance (5 Replies)
HI
Hi I have a character string which contains some special characters and I need it to display as a hex string.
For example, the sample i/p string: ×¥ïA Å gïÛý and
the o/p should be : D7A5EF4100C5010067EFDBFD
Any pointers or sample code pls. (5 Replies)
How do you test if a string is a number?
Trying to do something like this:
x="AS"
if( x is not a number ); then
x=0
fi
Because I want to do number arithmetic with x. (3 Replies)
While writing a shell script i happen to store some value in a string. Lets say the value is 59788.
Now in this script i want to get the value 9788 removing the first charater 5. The original string length usually remains constant.
Is there a single line command to do this or any simple way to... (4 Replies)