Finding value bigger than zero in all columns


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Finding value bigger than zero in all columns
# 1  
Old 10-29-2012
Finding value bigger than zero in all columns

Hi everybody,
I am a complete novice and please forgive if its answered gazillion times

I have a file which looks like this
Code:
1    0    2    0    0    0    0    0
0    3    0    1    18    2    6  0
1    7    0    2    4    0    0    0
1    17    16    1    1    0    0


I have to add 1st column to all the columns separately (i.e. $1+$2, $1+$3, $1+$4....) , if the value in 2nd column to last column is more than zero. I was thinking to use awk here, any help will be most appreciated.

Last edited by Scrutinizer; 10-29-2012 at 08:36 AM.. Reason: code tags
# 2  
Old 10-29-2012
Please give us a sample of expected output. And yes, awk is very good choice for this.
# 3  
Old 10-29-2012
Or do you mean like this:
Code:
awk '{for(i=2;i<=NF;i++)if ($i) $i+=$1}1' OFS='\t' infile

This User Gave Thanks to Scrutinizer For This Post:
# 4  
Old 10-29-2012
Quote:
Originally Posted by Scrutinizer
Or do you mean like this:
Code:
awk '{for(i=2;i<=NF;i++)if ($i) $i+=$1}1' OFS='\t' infile


Thank you So much Scrutinizer, this works flawless. I got the loop but Could I ask you to please explain this part
Code:
if ($i) $i+=$1}1

to me, thank you for your time

---------- Post updated at 07:01 AM ---------- Previous update was at 06:54 AM ----------

Quote:
Originally Posted by jim mcnamara
Please give us a sample of expected output. And yes, awk is very good choice for this.
@ jim mcnamara, the expected output I thought should look like this.

HTML Code:
1    0    3    0    0    0
1    8    0    3    5    0
1    18    17    2    2    0
Sorry for not making it clear
# 5  
Old 10-29-2012
Quote:
Originally Posted by amits22
[..]I got the loop but Could I ask you to please explain this part
Code:
if ($i) $i+=$1}1

to me[..]
Hi, it means: if $i is neither empty nor zero add $1 to it. "1" is short for 1{print $0} and means print the record.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Finding common entries between 10 columns

Hello, I need to find the intersection across 10 columns. Kindly help. my file (INPUT.csv) looks like this 4_R 4_S 8_R 8_S 12_R 12_S 24_R 24_S LOC_Os01g01010 LOC_Os01g01010 LOC_Os01g01010 LOC_Os04g48290 LOC_Os01g01010 LOC_Os01g01010... (1 Reply)
Discussion started by: Sanchari
1 Replies

2. Shell Programming and Scripting

Finding difference between two columns of unequal length

Hi, I have two files which look like this cat waitstate.txt 18.2 82.1 cat gostate.txt 5.6 5.8 6.1 6.3 6.6 6.9 7.2 7.5 (4 Replies)
Discussion started by: jamie_123
4 Replies

3. Shell Programming and Scripting

UNIX scripting for finding duplicates and null records in pk columns

Hi, I have a requirement.for eg: i have a text file with pipe symbol as delimiter(|) with 4 columns a,b,c,d. Here a and b are primary key columns.. i want to process that file to find the duplicates and null values are in primary key columns(a,b) . I want to write the unique records in which... (5 Replies)
Discussion started by: praveenraj.1991
5 Replies

4. UNIX for Dummies Questions & Answers

Finding reciprocal columns

super newbish question here. I have a file with the following format: A A 200 A B 100 A C 90 B B 203 B A 101 B C 87 C C 300 C A 91 C B 86 I would like to find reciprocal sets for columns 1 and 2 and then write the value of column 3 for the reciprocal set into column... (14 Replies)
Discussion started by: RawToast
14 Replies

5. Shell Programming and Scripting

Finding standard deviation for all columns in a data file

Hi All, I want someone to modify the below script from this forum so that it can be used for all columns in the file( instead of only printing column 3 mean and standard deviation values). I don't know how to loop around all the columns. ... (3 Replies)
Discussion started by: ks_reddy
3 Replies

6. Shell Programming and Scripting

finding duplicates in csv based on key columns

Hi team, I have 20 columns csv files. i want to find the duplicates in that file based on the column1 column10 column4 column6 coulnn8 coulunm2 . if those columns have same values . then it should be a duplicate record. can one help me on finding the duplicates, Thanks in advance. ... (2 Replies)
Discussion started by: baskivs
2 Replies

7. Shell Programming and Scripting

Matching same columns and finding the smallest match

Hi all, I am wondering if its possible to solve my problem with a simple code. Basically I have a file that looks like this (tab delimited) bob 8 250 tina 8 225 sam 8 225 ellen 9 315 kyle 9 275 sally 9 135 So what I want to do is match columns 2 and 5. If columns 2 and 5... (2 Replies)
Discussion started by: phil_heath
2 Replies

8. Shell Programming and Scripting

finding duplicates in columns and removing lines

I am trying to figure out how to scan a file like so: 1 ralphs office","555-555-5555","ralph@mail.com","www.ralph.com 2 margies office","555-555-5555","ralph@mail.com","www.ralph.com 3 kims office","555-555-5555","kims@mail.com","www.ralph.com 4 tims... (17 Replies)
Discussion started by: totus
17 Replies

9. Solaris

HDD cloned to a bigger one

Hello, I just cloned a 80 GB HDD(running Solaris 10) to an 320 GB HDD using g4u disk-to-disk method. Now Solaris is seeing may 320 GB HDD like 80 GB. Exactly like the old one. Could you tell me, please, how do I convince Solaris that my HDD is bigger? I would like to keep all slices as... (5 Replies)
Discussion started by: mirciulicai
5 Replies

10. Shell Programming and Scripting

finding files bigger than 2G

find /base/directory -size +2048M > /tmp/tempfile 1] is there an option to specify the size in Gb 2] the output lists files with size such as: 1152157 (doing ls -l so I guess it is in bytes) So I am missing something here because this file has a size below 2 Gb. Any hints?? thx. (3 Replies)
Discussion started by: melanie_pfefer
3 Replies
Login or Register to Ask a Question