How to cut by delimiter, and delimiter can be anything except numbers?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to cut by delimiter, and delimiter can be anything except numbers?
# 1  
Old 03-06-2012
How to cut by delimiter, and delimiter can be anything except numbers?

Hi all,

I have a number of strings like below:

Code:
//mnt/autocor/43°13'(33")W/[N]

and i'm trying to get the numbers in this string, for example
43[tab]13[tab]33[tab]

please help

thanks ahead
# 2  
Old 03-06-2012
You probably don't want to use cut, it's fast but inflexible (to the best of my knowledge you cant have a variable delimiter). try the following approach:
Code:
perl -e 'print join("\t",(split(/[^0-9]+/,$ARGV[0]))),"\n" ;' '//mnt/autocor/43°13(33")W/[N]'

ooops, re-read your question, the following puts a tab on the end of the line also
Code:
 perl -e 'print join("\t",(split(/[^0-9]+/,$ARGV[0])),"\n") ;' '//mnt/autocor/43°13(33")W/[N]'

This User Gave Thanks to Skrynesaver For This Post:
# 3  
Old 03-06-2012
Code:
perl -ne 'while(/(\d+)/g){print "$1\t"}' inputfile

This User Gave Thanks to balajesuri For This Post:
# 4  
Old 03-06-2012
Code:
~/unix.com$ awk -F'[^0-9]' '{s="";for(i=1;i<=NF;i++){if($i!="")s=s$i"\t"}print s}' file

This User Gave Thanks to tukuyomi For This Post:
# 5  
Old 03-06-2012
Code:
tr -cs '[:digit:]' '[\t*]'

This User Gave Thanks to alister For This Post:
# 6  
Old 03-06-2012
Someone, tell me what's wrong with this code, please?
Code:
awk -F'[^0-9]' '{s="";i=0;while(++i<=NF&&$i!="")s=s$i"\t"}$0=s' file

This User Gave Thanks to tukuyomi For This Post:
# 7  
Old 03-06-2012
Quote:
Originally Posted by tukuyomi
Someone, tell me what's wrong with this code, please?
Code:
awk -F'[^0-9]' '{s="";i=0;while(++i<=NF&&$i!="")s=s$i"\t"}$0=s' file

The while loop will abort at the first empty field because $i != "" evaluates to false. With the sample data provided and with the field separator you're using (any non-digit), the comparision is false for $1 and the body of the loop never executes.

Regards,
Alister
This User Gave Thanks to alister For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl Code to change file delimiter (passed as argument) to bar delimiter

Hi, Extremely new to Perl scripting, but need a quick fix without using TEXT::CSV I need to read in a file, pass any delimiter as an argument, and convert it to bar delimited on the output. In addition, enclose fields within double quotes in case of any embedded delimiters. Any help would... (2 Replies)
Discussion started by: JPB1977
2 Replies

2. Shell Programming and Scripting

Cut cmd with delimiter as |#|

Hi All- We have a file data as below with delimiter as |#| 10|#|20|#|ABC 13|#|23|#|PBC If I want to cut the 2nd field out of this, below command is not working as multiple pipe is causing an issue , it seems cut -f2 -d"|#|" <file_name> can you please help to provide the correct command... (7 Replies)
Discussion started by: sureshg_sampat
7 Replies

3. Shell Programming and Scripting

Shell script to put delimiter for a no delimiter variable length text file

Hi, I have a No Delimiter variable length text file with following schema - Column Name Data length Firstname 5 Lastname 5 age 3 phoneno1 10 phoneno2 10 phoneno3 10 sample data - ... (16 Replies)
Discussion started by: Gaurav Martha
16 Replies

4. Shell Programming and Scripting

cut delimiter and save

i have list of names in a text file and I wanted to delete the commas en every line. for example: inside the text is a list of names in it with commas after each line. I wanted to delete these commas. which command must I execute for this? unix, dale, shawn, aaron, (4 Replies)
Discussion started by: garfish
4 Replies

5. Shell Programming and Scripting

how to cut all string after the last delimiter?

hi all, suppose a string: abc/def/ghi/jkl/mn.txt and i want to get the file name without the path. however, different files have different paths, therefore the number of delimiter is uncertain. thanks so much! (3 Replies)
Discussion started by: sunnydanniel
3 Replies

6. Shell Programming and Scripting

Cut columns with delimiter

HI, I have a file like below "103865","103835","Zming","","Zhu","103965","Sunnyvale","US", "116228","116227","Morlla","","Kowalski","113228","Paese "(Treviso)""IT" I want to validate the 7th column which is below. "Sunnyvale" "Paese In the above 7th column Paese is not ended with... (9 Replies)
Discussion started by: Krrishv
9 Replies

7. Shell Programming and Scripting

cut -d with more than 1 delimiter?

I need to cut or otherwise get the 4th and 5th position output of for i in `date +%H` ; do vnstat --dumpdb | grep "h;$i" ; done example output is: h;13;1310318701;443;93 I only need ";443;93" from any given run of "for i in `date +%H` ; do vnstat --dumpdb | grep "h;$i" ; done" Thanks... (3 Replies)
Discussion started by: Habitual
3 Replies

8. UNIX for Advanced & Expert Users

use a word as a delimiter with cut

Is there a way to use a word as a delimiter with cut? Or is there a way to use sed or awk with a word as a delimiter? I don't care which program I use for a delimiter I just want to use a word as a delimiter. (2 Replies)
Discussion started by: cokedude
2 Replies

9. Shell Programming and Scripting

Cut Number which appear before a delimiter

Hi All, How can i use the cut option to only output the number of rows, which is 2 is this case ? Pls note that the number of digit before the delimiter ":" is always varying. $ grep -n uuu xxx 2:** xxx yyy gg 44 tt uuu 2007 $ (2 Replies)
Discussion started by: Raynon
2 Replies

10. Shell Programming and Scripting

\r as delimiter in cut

I need to use \r as a delimiter in the -d option of the cut comand . Any help ? Thanks in advance . SD (5 Replies)
Discussion started by: shweta_d
5 Replies
Login or Register to Ask a Question