The shell field/word splitting occurs only on expansion.
From the manual pages of bash:
Quote:
Word Splitting
The shell scans the results of parameter expansion, command substitution, and arithmetic expansion that did not
occur within double quotes for word splitting.
[...]
Note that if no expansion occurs, no splitting is performed.
4.1.10(4)-release$ s='one+two'
4.1.10(4)-release$ a=( $s )
4.1.10(4)-release$ echo "${a[0]}"
one
Consider the following:
Code:
elements='hello world+sunny'
# $elements is not quoted so it is
# subject to word splitting
# based on the current value
# of IFS
array_test=( $elements )
for elem in "${array_test[@]}"; do
printf '%s\n' "$elem"
done
printf '\nChanging IFS to %s\n\n' +
IFS=+
# we need to reassign
# in order to perform word
# splitting based on the
# new IFS value
array_test=( $elements )
for elem in "${array_test[@]}"; do
printf '%s\n' "$elem"
done
This is the output:
Code:
4.1.10(4)-release$ ./s
hello
world+sunny
Changing IFS to +
hello world
sunny
With recent versions of bash you could use something like this too:
I have some version of AWK that does not support regular expression field separators ( neither do I have nawk or gawk). How do I go about reading a line with the field separator as either the string "=#" or "+=".
My data looks like this:
abhishek=#nnnnn+#1234+#87
One option is to use... (2 Replies)
Hi, all
I need to get fields in a line that are separated by commas, some of the fields are enclosed with double quotes, and they are supposed to be treated as a single field even if there are commas inside the quotes.
sample input:
for this line, 5 fields are supposed to be extracted, they... (8 Replies)
Hi,
I have a flat file with fields separated by a X'1F'
i have to fetch 4th field from second line.
please help me how to achieve it.
I tried with below command and its not working.
cut -f4 -d`echo -e '\x1f'` filename.txt
I am using SunOS.
Thanks in advance. (2 Replies)
I am trying to echo all fields except for the last field.
I want to include the field seperator, but it is removed.
echo "a;s;v;g" | awk -F ";" '{$(NF--)=""; print}'
a s v
I want an output like this:
a;s;v; (3 Replies)
Hi,
How i can use two strings as field separator..
I want to use filed separator's as < and >
input -
shdhd ads<adsd adfs >sdfsd sfsdfsd<
Please help me in this..:wall:
thanks a lot... (3 Replies)
Hi !
input:
111|222|333|aaa|bbb|ccc
999|888|777|nnn|kkk
444|666|555|eee|ttt|ooo|ppp
With awk, I am trying to change the FS "|" to "; " only from the 4th field until the end (the number of fields vary between records).
In order to get:
111|222|333|aaa; bbb; ccc
999|888|777|nnn; kkk... (1 Reply)
I need to set awk field separator to ";", but I need to avoid ";EXT".
so that
echo a;b;c;EXTd;e;f | awk -F";" '{print $3}'
would give "c;EXTd" (2 Replies)
Hi Experts ,
file :
- How to construct the awk filed separator so that $1, $2 $3 , can be assigned to the each "" range.
I am trying : awk -F"]" '{print $1}'
but it is printing the entire file. Not first field.
The desired output needed for first field... (9 Replies)
Hello All,
I have a file, but I want to separate the file at a particular record with comma"," in the line
Input file
APPLE6SSAMSUNGS5PRICEPERPIECEDOLLAR600EACH010020340URX581949695US
to
Output file
APPLE6S,SAMSUNGS5,PRICEPERPIECE,DOLLAR600EACH,010020340URX581949695,US
This is for... (11 Replies)