![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Forum Rules | FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts here. |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| problem with dd command or maybe AFS problem | Anta | Shell Programming and Scripting | 0 | 08-25-2006 07:10 AM |
| SSH Problem auth problem | budrito | UNIX for Advanced & Expert Users | 1 | 03-17-2004 07:12 AM |
|
|
Submit Tools | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
Computation Problem
Hi Folks
I have a file with the following sample input 919416586748,1200,31200 919416283619,3521,33521 919416811900,2440,64940 919416576012,13670,43670 Now i want to subtract the second value (where , is field separator) from the third value and display the output as follows 919416,30000 919416,30000 919416,62500 919416,30000 i wrote a simple program Code:
for var in `cat 1` do a1=`echo $var | cut -d"," -f1|cut -c1-6` a2=`echo $var | cut -d"," -f2` a3=`echo $var | cut -d"," -f3` a4=`expr $a3 - $a2` echo "$a1,$a4" >> 2 done Can anybody recommend a much faster method for the same? Thanks in advance Regards |
| Forum Sponsor | ||
|
|
|
#2
|
||||
|
||||
|
How about:
awk -v FS=, -v OFS=, '{print substr($1,1,6),$3-$2}' < datafile |
|
#3
|
|||
|
|||
|
Quote:
|
|
#4
|
|||
|
|||
|
Thanks a lot folks
Both the queries worked. I really need to brush up on the awk command. This is the second time where a one line awk command has bailed me out where i had spent hours using some inefficient scripts. Regards |
|||
| Google The UNIX and Linux Forums |