Here is how I would do it (now that we know how you want to handle the case that wasn't covered by your description). It is similar to SriniShoo's code, but formatted in a way that I find easier to follow:
Code:
awk '
BEGIN { FS = OFS = "\t" # Set input and output field separators
}
NR == 1 { # Grab field headers from 1st line in 1st file
for(i = 2; i < NF; i++)
h[i] = $i
next # Skip to next input line
}
FNR == NR { # Gather data for field 1 in 1st file
d[$1] # Initialize to empty string
for(i = 2; i < NF; i++) # For each Yes add header to the list...
if($i == "Yes")
d[$1] = ((d[$1] == "") ? "" : d[$1] ",") h[i]
if(d[$1] == "") # Set last field based on what we have found
d[$1] = "-" OFS $NF # No "Yes"; use lsat field on line
else d[$1] = d[$1] OFS "Yes" # 1 or more "Yes"; "Yes"j
next # Skip to next input llne
}
{ print $0, d[$2] # Print lines from 2nd file with data from 1st file
}' file_[12]
This User Gave Thanks to Don Cragun For This Post:
Hi,
I have a fixed length file where I need to verify the values of 3 different fields, where each field will have a different value.
How can I do that in a single step. (6 Replies)
Match column 3 in file1 to column 1 in file 2 and replace with column 2 from file2
file 1 sample
SNDK 80004C101 AT
XLNX 983919101 BB
NETL 64118B100 BS
AMD 007903107 CC
KLAC 482480100 DC
TER 880770102 KATS
ATHR 04743P108 KATS... (7 Replies)
Hi,
I need help on appending certain field in my file1.txt based on matched patterns in file2.txt using awk or sed.
The blue color need to match with one of the data in field $2 in file2.txt. If match, BEGIN and FINISHED value in red will have a new value from field $3 and $4 accordingly.
... (1 Reply)
I have two text files where the first three columns are exactly the same. I want to compare the fourth column of the text files and if the values are different, print that row into a new output file. How do I go about doing that?
File 1:
100 rs3794811 0.01 0.3434
100 rs8066551 0.01... (8 Replies)
Hi All,
I have a file with data as below:
A,FILE1_MYFILE_20130309_1038,80,25.60
B,FILE1_MYFILE_20130309_1038,24290,18543.38
C,FILE1_dsc_dlk_MYFILE_20130309_1038,3,10.10
A,FILE2_MYFILE_20130310_1039,85,110.10
B,FILE2_MYFILE_20130310_1039,10,12.10... (10 Replies)
Hi,
My input files is like this
axis1 0 1 10
axis2 0 1 5
axis1 1 2 -4
axis2 2 3 -3
axis1 3 4 5
axis2 3 4 -1
axis1 4 5 -6
axis2 4 5 1
Now, these are my following tasks
1. Print a first column for every two rows that has the same value followed by a string.
2. Match on the... (3 Replies)
Hi All,
I have a requirement where I need to find sum of values from column D through O present in a CSV file and check whether the sum of each Individual column matches with the value present for that corresponding column present in the trailer record.
For example, let's assume for column D... (9 Replies)
Please help me to get required output for both scenario 1 and scenario 2 and need separate code for both scenario 1 and scenario 2
Scenario 1
i need to do below changes only when column1 is CR and column3 has duplicates rows/values. This inputfile can contain 100 of this duplicated rows of... (1 Reply)
hi
I have 2 file with more than 10 columns for both
1st file
apple,0,0,0......
orange,1,2,3.....
mango,2,4,5.....
2nd file
apple,2,3,4,5,6,7...
orange,2,3,4,5,6,8...
watermerlon,2,3,4,5,6,abc...
mango,5,6,7,4,6,def.... (1 Reply)
Discussion started by: tententen
1 Replies
LEARN ABOUT DEBIAN
keyhead
keyhead(1) General Commands Manual keyhead(1)Name
keyhead - Change FITS or IRAF header keyword names
Synopsis
keyhead [-hknv] <FITS or IRAF file> kw1=kw1a kw2=kwd2a ... kwn=kwdna
Description
Change the names of keywords in FITS or IRAF image headers. Each current image keyword whose entry is to be modified should be followed by
an equal sign and a second keyword, with no intervening spaces. If the -r option is used, the value of the second keyword is transfered to
that of the first. Otherwise, the name of the first keyword is changed to the second keyword. To change keywords in a list of files, sub-
stitute @<listfile> for the file names on the command line. To change a lot of keywords, put them, one pair separated by an = sign with no
spaces per line, in a file and substitute @<keylistfile> on the command line. If two @ commands are present, the program will figure out
which contains file names and which contains keywords. Lines in a keyword list file which do not contain an = are ignored.
Options-h Write HISTORY line into output header with sethead version, current date and time, and names of keywords set.
-k Write KEYHEAD keyword into output header with the keyhead version, current date and time, and names of keywords whose names are
changed. If a KEYHEAD keyword already exists, move the old value to a HISTORY line before writing the new value
-n Write a new file with an added "e" before the extension.
-r letter
Replace value of 1st keyword with value of 2nd keyword instead of changing the name of the 1st keyword to the 2nd keyword. The 2nd
keyword remains in the header. If the 1st keyword does not exist in the header, it is created.
-v Print confirmations of each keyword change.
Web Page
http://tdc-www.harvard.edu/software/wcstools/keyhead.html
Author
Doug Mink, SAO (dmink@cfa.harvard.edu)
6 July 2001 WCSTools keyhead(1)