Visit Our UNIX and Linux User Community


Determining position in a tab delimited file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Determining position in a tab delimited file
# 8  
Old 11-08-2009
Modiefied, try this ..

Code:
#!/usr/bin/perl
while (<>) {
        chomp $_;
        @array = split;
        print $array[0],"\t",$array[1],"\t";
        $counter = 0;
        for (reverse (@array)){
        chomp;
        if ( ! /UI/ ){
                $counter ++ ;
                if ($_ > 0 ) {
        print $counter,"\t","$_","\n";
        last;
        }
        }
        }
}

input file
Code:
name  x  -0.002   -92  -45  78.33  UI  UI  UI
name  y  -9.55    -83.21  33    45  -9.34  UI  UI  UI

output
Code:
name    x       1       78.33
name    y       2       45

# 9  
Old 11-08-2009
Quote:
Originally Posted by pravin27
Hi,
Try this,

Code:
#!/usr/bin/perl

while (<>) {
        chomp $_;
        @array = split;
        print $array[0],"\t",$array[1],"\t";
        $counter = 0;
        for (reverse (@array)){
        chomp;
        if ( ! /UI/ ){
                $counter ++ ;
                if ($_ > 0 ) {
        print $counter,"\t",$_,"\n";
        }
        }
        }
}

perl test27.pl sample.txt

Output
Code:
name    x       1       78.33
name    y       2       45


Hey actually the original script worked better. So the output using the original script would give.

Code:
name    x    1    78.33
name    y    2    45
3    33

That is perfectly correct but I want it to have

name x 1 78.33
name y 2 45
name y 3 33

i have no clue how to add the name and y (or x) for the other values.
# 10  
Old 11-08-2009
Code:
awk '{gsub(" UI","");for(i=2;++i<=NF;){if($i>=0)print $1,$2,(NF-i+1),$i}}' OFS='\t' file

From here I'll let you sort out the output Smilie
# 11  
Old 11-08-2009
thank you danmero!!!!!!!
# 12  
Old 11-09-2009
Hi,

Try this...........


Code:
#!/usr/bin/perl

while (<>) {
        chomp $_;
        @array = split;
        $counter = 0;
        for (reverse (@array)){
        chomp;
        if ( ! /UI/ ){
                $counter ++ ;
                if ($_ > 0 ) {
        print $array[0],"\t",$array[1],"\t",$counter,"\t",$_,"\n";
        }
        }
        }
}


Previous Thread | Next Thread
Test Your Knowledge in Computers #586
Difficulty: Medium
Making many function calls can be costly in terms of stack space. One optimization that can be made is to use tail recursion.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Replace a column in tab delimited file with column in other tab delimited file,based on match

Hello Everyone.. I want to replace the retail col from FileI with cstp1 col from FileP if the strpno matches in both files FileP.txt ... (2 Replies)
Discussion started by: YogeshG
2 Replies

2. Shell Programming and Scripting

Tab Delimited file in loop

Hi, I have requirement to create tab delimited file with values coming from variables. File will contain only two columns separated by tab. Header will be added once. Values will be keep adding upon the script run. If values already exists then values will be replaced. I have done so... (1 Reply)
Discussion started by: sukhdip
1 Replies

3. UNIX for Dummies Questions & Answers

Need to convert a pipe delimited text file to tab delimited

Hi, I have a rquirement in unix as below . I have a text file with me seperated by | symbol and i need to generate a excel file through unix commands/script so that each value will go to each column. ex: Input Text file: 1|A|apple 2|B|bottle excel file to be generated as output as... (9 Replies)
Discussion started by: raja kakitapall
9 Replies

4. Shell Programming and Scripting

How to read data from tab delimited file after a specific position?

Hi Experts, I have a tab deliminated file as below myfile.txt Local Group Memberships *Administrators *Guests I need data in below format starting from 4th position. myfile1.txt Administrators Guests the above one is just an example and there could... (15 Replies)
Discussion started by: Litu1988
15 Replies

5. Shell Programming and Scripting

How to make tab delimited file to space delimited?

Hi How to make tab delimited file to space delimited? in put file: ABC kgy jkh ghj ash kjl o/p file: ABC kgy jkh ghj ash kjl Use code tags, thanks. (1 Reply)
Discussion started by: jagdishrout
1 Replies

6. Shell Programming and Scripting

Help with converting Pipe delimited file to Tab Delimited

I have a file which was pipe delimited, I need to make it tab delimited. I tried with sed but no use cat file | sed 's/|//t/g' The above command substituted "/t" not tab in the place of pipe. Sample file: abc|123|2012-01-30|2012-04-28|xyz have to convert to: abc 123... (6 Replies)
Discussion started by: karumudi7
6 Replies

7. UNIX for Dummies Questions & Answers

tab delimited file that is not tab delimited.

Hi Forum I have a tab delimited file that opens well in Openoffice calc (excel). But when I perform any operation in command line, it reads the file incorrectly. When I 'save As' the same file in office as tab delimited then it works fine. The file that I think is tab delimited is actually... (8 Replies)
Discussion started by: imlearning
8 Replies

8. UNIX for Dummies Questions & Answers

100 $1's to new tab delimited file

Hi I have 100 files each with only one column of 10 numbers that I wish to add to a new file so that I get 100 columns collected in one tab delimited file. I tried something like: foreach num (1 2 3) foreach? gawk -F '\t' '{$num=$1}1' OFS='\t' Eu9_10.2patienter/pospep_10.2patient$num >>... (5 Replies)
Discussion started by: Banni
5 Replies

9. UNIX for Dummies Questions & Answers

Converting Space delimited file to Tab delimited file

Hi all, I have a file with single white space delimited values, I want to convert them to a tab delimited file. I tried sed, tr ... but nothing is working. Thanks, Rajeevan D (16 Replies)
Discussion started by: jeevs81
16 Replies

10. Shell Programming and Scripting

Converting Tab delimited file to Comma delimited file in Unix

Hi, Can anyone let me know on how to convert a Tab delimited file to Comma delimited file in Unix Thanks!! (22 Replies)
Discussion started by: charan81
22 Replies

Featured Tech Videos