Splitting a string with awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Splitting a string with awk
# 1  
Old 08-14-2008
Splitting a string with awk

Hi all,
I want to split a string in awk and treat each component seperatley.
I know i can use:

Code:
split ("hi all", a, " ")

to put each delimited component into array a.

However when i want to do this with just a string of chars it does not work

Code:
split ("hi", a, "");
print a[1];

prints hi.

Any idea on how I might do this in awk?

Thanks
# 2  
Old 08-14-2008
Hard to tell without seeing your input file. Basically it should be like this:

Code:
echo 'aa:bb:cc:dd:ee'| awk '{split($0,array,":")} END{print array[2]}'
bb

# 3  
Old 08-14-2008
Zaxxon,
Thanks for your help.
Yes I understand the principal of splitting the string based on a given field seperator and placing each new field in an array.
My problem is that my string contains no field seperators.
From your example how would you split if the string contained no ":" and was simply aabbccddee.
I would like to assign each letter of the string to a place in the array.

Thanks
# 4  
Old 08-14-2008
At least the mawk manual page says that if the separator is the empty string, no splitting will take place (this is quite unlike Perl). But anyway, what's wrong with simply looping over each character with substr?
# 5  
Old 08-14-2008
Not sure if this helps, but if using gawk you can unset FS like this....
Code:
$ echo "abcd" | gawk -F "" '{print $2}'
b

# 6  
Old 08-14-2008
Quote:
Originally Posted by pxy2d1
Hi all,
I want to split a string in awk and treat each component seperatley.
I know i can use:

Code:
split ("hi all", a, " ")

to put each delimited component into array a.

However when i want to do this with just a string of chars it does not work

Code:
split ("hi", a, "");
print a[1];

prints hi.

Any idea on how I might do this in awk?

Thanks

Code:
echo "hello all" | \
awk '{
   gsub(".", "& ")
   split($0, a, " ")
   print a[1]
}'

# 7  
Old 08-14-2008
Code:
echo 'hi' | awk '{split($0,array,"\n")} END{print array[1]}'


Last edited by gnsxhj; 08-15-2008 at 06:38 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need HELP with AWK split. Need to check for "special characters" in string before splitting the file

Hi Experts. I'm stuck with the below AWK code where i'm trying to move the records containing any special characters in the last field to a bad file. awk -F, '{if ($NF ~ /^|^/) print >"goodfile";else print >"badfile"}' filename sample data 1,abc,def,1234,A * 2,bed,dec,342,* A ... (6 Replies)
Discussion started by: shell_boy23
6 Replies

2. Shell Programming and Scripting

AWK splitting a string of equal parts of 500 chars

Hi , can someone help me how to make an AWK code for splitting a string of equal parts of 500 chars in while loop? Thank you! (4 Replies)
Discussion started by: sanantonio7777
4 Replies

3. Shell Programming and Scripting

Splitting string with awk

Input: Debris Linux is a minimalist, desktop-oriented distribution and live CD based on Ubuntu. It includes the GNOME desktop and a small set of popular desktop applications, such as GNOME Office, Firefox web browser, Pidgin instant messenger, and ufw firewall manager. Debris Linux ships... (5 Replies)
Discussion started by: cola
5 Replies

4. UNIX for Dummies Questions & Answers

Help with splitting a string..

Hello I need help with the following. I have strings like #if defined(__def1__) #if defined(__def1__) || defined(__def2__) #if defined(__def1__) && defined(__def2__) && defined(__def3__). #if defined(__def1__) || defined(__def2__) || defined(__def3__). I need to print what is there in... (4 Replies)
Discussion started by: srk
4 Replies

5. Shell Programming and Scripting

splitting words from a string

Hi, I have a string like this in a file, I want to retrive the words separated by comma's in 3 variables. like How do i get that.plz advice (2 Replies)
Discussion started by: suresh_kb211
2 Replies

6. UNIX for Dummies Questions & Answers

Splitting a string and putting another string in the middle?

Hello all! I'm trying to put together a small script that will take in a file name and attach a datestamp to the end of it (but before the file type extension). To illustrate... Before: filename.txt anotherfilename.txt After: filename_20090724.txt anotherfilename_20090724.txt ... (7 Replies)
Discussion started by: jisoo411
7 Replies

7. Shell Programming and Scripting

Perl - Need help on splitting string

Let's say I have a very long string with no spaces but just words stored in $very_long_string. $very_long_string = "aaaaaaaaaaabbbbbbbbbbbccccccccccccdddddddddddd"; I can do this to split the string into 1 character each and store them in an array: @myArray = split(//, $very_long_string); ... (3 Replies)
Discussion started by: teiji
3 Replies

8. Programming

Is this string splitting function OK?

Hello, I am recently working on an application that sends large strings accross a network very often. These then need to be broken up first with '!' and then with ','. My current function (below) works fine for this when not too much data is being sent across the network but segfaults when a... (4 Replies)
Discussion started by: kpedersen
4 Replies

9. Shell Programming and Scripting

Splitting a string

Hi, I am new to shell scripting, Can any body suggest me how I can split a string with a delimiter as whitespace into words and store into a array. I have read a line from file, now I want to split the line into words and store in a array for further use. eg : the sky is blue want... (3 Replies)
Discussion started by: smk
3 Replies

10. Shell Programming and Scripting

string splitting

Hi, I have a string like 'xyz' and i want to to split the above string into letters for comparision purpose. any idea pls. cheers RRK. (3 Replies)
Discussion started by: ravi raj kumar
3 Replies
Login or Register to Ask a Question