my_array=($(echo $string | tr "," "
"))
string="you got a friend in me"
IFS=' ' read -ra split <<< "$string"
echo "${split[*]}"
# Output: you got a friend in me
echo "${split[3]}"
# Output: friend
IN="bla@some.com;john@home.com"
arrIN=(${IN//;/ })
echo ${arrIN[1]} # Output: john@home.com
#!/usr/bin/env bash
# There are different method of splitting a string.
# Two of those methods are shown below
# a sample string delimeted by ";"
IN="FirstName=John; LastName=Doe; Email=jd@someone.com"
# First method:
# splits the string on ';' and puts them into an array
person=$(echo $IN | tr ";" "
")
# you can loop through the array
for info in $person
do
echo "> [$info]"
done
# Second method:
echo "$IN" | cut -d ";" -f 1 # returns the first part
echo "$IN" | cut -d ";" -f 2 # returns the second part
#and so on.
IN="bla@some.com;john@home.com"
arrIN=(${IN//;/ })
# Basic syntax:
cut -d "delimeter" -f split_number your_file
# Where:
# - -d specifies the delimeter to split by
# - -f specifies which element to return after splitting
# Note, if running this in a bash script, use syntax like:
"$(cut -d ',' -f split_number <<<$variable_to_split)"
# Note, there are lots of ways of doing this, e.g. with awk:
awk -F delimiter '{print $split_number}' your_file
# Where:
# - -F specifies the field delimiter
# Note, awk also has a split function which has this syntax:
awk '{split($column, a, "delimiter"); action_after_split }' your_file
# Where:
# - the column is the column to be split (awk uses whitespace to determine
# columns by default)
# - a is an array variable which will store the contents of the split
# - delimiter is the delimiter by which to split the column
# Example usage:
# Say you have a file with this line:
my file with fields_to_split
# You can print "to" with:
awk '{split($4, a, "_"); print a[2] }' your_file
--> to
IFS=', ' read -r -a array <<< "$string"