Shell string functions for text handling. Join multiple strings, change casing, pad, searching, and more...
#!/usr/bin/sh
#===================================================================
s_join() # creates single string from several
#===================================================================
# Arg_n = Input Strings
{
echo "$@" | tr ' ' '_'
}
#===================================================================
s_upper() # returns input string in upper case
#===================================================================
{
echo $@ | tr '[a-z]' '[A-Z]'
}
#===================================================================
s_lower() # returns input string in lower case
#===================================================================
{
echo $@ | tr '[A-Z]' '[a-z]'
}
#===================================================================
s_count_args() # returns count of input ARG_LIST
#===================================================================
# Arg_n = ARG_LIST
{
echo $#
}
#===================================================================
s_count_lines() # returns count of lines in FILENAME
#===================================================================
# Arg_1 = FILENAME
{
line_count=`wc -l $1 | cut -c1-8`
expr $line_count + 0
}
#===================================================================
s_length() # returns length of string
#===================================================================
# Arg_1 = string
{
length=`echo "$@" | wc -c | cut -c1-8`
length=`expr $length -1`
}
#===================================================================
s_right_pad() # right pads a string to width
#===================================================================
# Arg_1 = string
# Arg_2 = width
{
string="$1 "
echo "$string" | cut -c1-$2
}
#===================================================================
s_left_pad() # left pads a string to width
#===================================================================
# Arg_1 = string
# Arg_2 = width
{
string=" $1"
length=`s_length "$string"`
echo "$string" | cut -c`expr $length - $2`-$length
}
#===================================================================
s_find_char_all() # finds all positions of CHAR in LIST
#===================================================================
# Arg_1 = CHAR
# Arg_n = LIST
{
echo "$@" | cut -f2- -d\ | sed -e 's/./&\
/g' | grep -n $1 | cut -f1 -d:
}
#===================================================================
s_find_char() # finds first position of CHAR in LIST
#===================================================================
# Arg_1 = CHAR
# Arg_n = LIST
{
s_find_word_all "$@" | head -1
}
#===================================================================
s_get_char() # returns the CHAR at POSITION in LIST
#===================================================================
# Arg_1 = POSITION
# Arg_n = LIST
{
echo "$@" | cut -f2- -d\ | cut -c$1 -d\
}
#===================================================================
s_find_word_all() # finds all positions of word in list
#===================================================================
# Arg_1 = word
# Arg_n = list
{
echo $@ | cut -f2- -d\ | tr ' ' '\n' \
| grep -n $1 | cut -f1 -d:
#===================================================================
s_find_word() # finds first position of word in list
#===================================================================
# Arg_1 = word
# Arg_n = list
{
s_find_word_all $@ | head -1
}
#===================================================================
s_get_word() # returns the word at position in list
#===================================================================
# Arg_1 = position
# Arg_n = list
{
echo $@ | cut -f2- -d\ | cut -f$1 -d\
}