01-18-2009
AWK solution to subtract multiple columns of numbers
Hope somebody is happy.
NR==1 {
num_columns=split( $0, menuend );
next;
}
{
split( $0, substrend );
for ( i=1; i<=NF; i++ ) {
minuend[i] -= substrend[i];
}
}
END {
print "Result:";
for ( i=1; i<=num_columns; i++ ) {
printf( "%8d", menuend[i] );
}
printf "\n";
}
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
I want to subtract a number from all columns except the first column. I have a number of files each having different columns around 60/70. How to do that in awk or any other command?
Thanks
Input
Col 1 Col 2 Col3 - - - - Col55
1 .0123 .098 - - - 0.6728
2 - -... (3 Replies)
Discussion started by: Surabhi_so_mh
3 Replies
2. Shell Programming and Scripting
Hi,
Input
7488 7389 chr1.fa chr1.fa
3546 9887 chr5.fa chr9.fa
7387 7898 chrX.fa chr3.fa
7488 7389 chr21.fa chr3.fa
7488 7389 chr1.fa chr1.fa
3546 9887 chr9.fa chr5.fa
7898 7387 chrX.fa chr3.fa
Desired Output
7488 7389 chr1.fa chr1.fa 2
3546 9887 chr5.fa chr9.fa 2... (2 Replies)
Discussion started by: jacobs.smith
2 Replies
3. Shell Programming and Scripting
space_used.lst
/dev/vx/dsk/A06487-S01-c4e3s-ORACLE-dg/oradata01 505G 318G 175G 65% /dborafiles/nethealth21/PV/oradata01
/dev/vx/dsk/A06487-S01-c4e3s-ORACLE-dg/oradata02 505G 433G 67G 87% /dborafiles/nethealth21/PV/oradata02
/dev/vx/dsk/A06487-S01-c4e3s-ORACLE-dg/oradata03 507G 422G 79G 85%... (4 Replies)
Discussion started by: sathik
4 Replies
4. Shell Programming and Scripting
Hi
I have this file with content
ale,4 ,ale,2 ,ale,1 ,ale,2
ale,1 ,ale,7 ,ale,7 ,ale,13
ale,6 ,ale,1 ,ale,1 ,ale,1
ale,1 ,ale,1 ,ale,37 ,ale,1
ale,1 ,ale,1 ,ale,2 ,ale,37
ale,77 ,ale,1 ,ale,53 ,ale,3
ale,5 ,ale,1 ,ale,2 ,ale,40
ale,1 ,ale,1 ,ale,44 ,ale,1... (7 Replies)
Discussion started by: nikhil jain
7 Replies
5. Shell Programming and Scripting
Hi All,
I have a file with thousands of lines in the following format, where
Field1=First 8 characters
Field2-9-16 characters
Field3=17-26 characters
I need to add Field 1 and Field2 and subtract the result from Field 3.
Field3=Field3 - (Field1 + Field2)
0012.00 0010.00 0001576.53... (4 Replies)
Discussion started by: nua7
4 Replies
6. UNIX for Dummies Questions & Answers
Hi experts, I've been struggling to format a large genetic dataset. It's complicated to explain so I'll simply post example input/output
$cat input.txt
ID GENE pos start end
blah1 coolgene 1 3 5
blah2 coolgene 1 4 6
blah3 coolgene 1 4 ... (4 Replies)
Discussion started by: torchij
4 Replies
7. UNIX for Dummies Questions & Answers
---------- Post updated at 01:58 PM ---------- Previous update was at 01:48 PM ----------
For some reason my question is not getting printed. Here are the details:
Greetings.
I would like to add/subtact an integer to/from two columns of integers. I feel like this should be easy using awk... (3 Replies)
Discussion started by: Twinklefingers
3 Replies
8. UNIX for Dummies Questions & Answers
Hi all. Wondering if someone can help with an awk solution to a problem I'm stumped with.
I have a matrix file with >1000 fields and would like to add another column after each column with a text label. For example:
Input:
$cat file.txt
name col1 col2 col3 coln
aaaa ... (2 Replies)
Discussion started by: torchij
2 Replies
9. Shell Programming and Scripting
Hi Folks,
I have a file with 2 columns TAB delimited and I want to add '1' to the first column and subtract '-1' from the second column.
What I have tried so far is;
awk -F"\t" '{ $1-=1;$2+=1}1' OFS='\t' file
File
0623 0623
0624 0624
0643 0643
1059 1037
1037 1037
1038 1038... (2 Replies)
Discussion started by: pshields1984
2 Replies
10. Shell Programming and Scripting
Hello,
I have a variable LOGNUM with values 0000095, When i subtract the variable by 1, Its losing its leading zeros. Can you please help me here ?
LOGNUM=0000095
$OLDLOG=`echo "${LOGNUM}-1"|bc`
$ echo $OLDLOG
94
Am expecting output as
0000094
Appreciate your help!
Thanks,... (11 Replies)
Discussion started by: prince1987
11 Replies
split(n) Tcl Built-In Commands split(n)
__________________________________________________________________________________________________________________________________________________
NAME
split - Split a string into a proper Tcl list
SYNOPSIS
split string ?splitChars?
_________________________________________________________________
DESCRIPTION
Returns a list created by splitting string at each character that is in the splitChars argument. Each element of the result list will con-
sist of the characters from string that lie between instances of the characters in splitChars. Empty list elements will be generated if
string contains adjacent characters in splitChars, or if the first or last character of string is in splitChars. If splitChars is an empty
string then each character of string becomes a separate element of the result list. SplitChars defaults to the standard white-space char-
acters.
EXAMPLES
Divide up a USENET group name into its hierarchical components:
split "comp.lang.tcl.announce" .
-> comp lang tcl announce
See how the split command splits on every character in splitChars, which can result in information loss if you are not careful:
split "alpha beta gamma" "temp"
-> al {ha b} {} {a ga} {} a
Extract the list words from a string that is not a well-formed list:
split "Example with {unbalanced brace character"
-> Example with {unbalanced brace character
Split a string into its constituent characters
split "Hello world" {}
-> H e l l o { } w o r l d
PARSING RECORD-ORIENTED FILES
Parse a Unix /etc/passwd file, which consists of one entry per line, with each line consisting of a colon-separated list of fields:
## Read the file
set fid [open /etc/passwd]
set content [read $fid]
close $fid
## Split into records on newlines
set records [split $content "
"]
## Iterate over the records
foreach rec $records {
## Split into fields on colons
set fields [split $rec ":"]
## Assign fields to variables and print some out...
lassign $fields
userName password uid grp longName homeDir shell
puts "$longName uses [file tail $shell] for a login shell"
}
SEE ALSO
join(n), list(n), string(n)
KEYWORDS
list, split, string
Tcl split(n)