Well, you need a definite spec of when field 2 is to be removed, as Susan is just a longer second field. Perhaps we can key on the '.' trailing dot/stop. I am a sed guy, not su much PERL and awk:
Code:
sed 's/^\([^ ]* \)[^ .]*\. /\1/'
Narrative: sed reads stdin, and if there is a dot at the end of the second space separated field, removes it by replacing the first two fields plus separaors with the first field plus separator, writes all to stdout.
I would like to do the following in bash shell.
file a
a:1
b:2
c:3
file b
a:work:apple
b:baby:banana
c:candy:cat
d:desk:dog
I would like to match field 1 in file a to file b, if there's a match I would like
to append field 2 in file a to field 3 in file b.
Thank you. (8 Replies)
Hi All,
Thanks for your help in advance
I am parsing a log file where the first field of each line can have the same key value but not more than 3 times in a row. Varying value of that first field changes as you go through the log but it either appears 3 times or two and sometimes only once.... (1 Reply)
First, thanks for the help in previous posts... couldn't have gotten where I am now without it!
So here is what I have, I use AWK to match $1 and $2 as 1 string in file1 to $1 and $2 as 1 string in file2. Now I'm wondering if I can extend this AWK command to incorporate the following:
If $1... (4 Replies)
hello,
i have a little problem, i want match the complete field ($1 or $2) with a complete word in another variable.
example:
i have a file with either one or two words per lane:
hsa-mir-4449
hsa-mir-4707
hsa-mir-4707* hsa-mir-4707
novelMiR_3551 novelMiR_3563
novelMiR_4330... (4 Replies)
In the awk below I use $2 of filet to search filea for a match. If the values in $2 are exact match this works great. However, that is not always the case, so I need to perform the search using a range of + or - 2. That is if the value in filea $2 is within + or - 2 of filet $2 then it is matched.... (6 Replies)
I am trying to look for $2 of file1 (skipping the header) in $2 of file2 (skipping the header) and if they match and the value in $10 is > 30 and $11 is > 49, then print the line from file1 to a output file. If no match is foung the line is not printed. Both the input and output are tab-delimited.... (3 Replies)
Discussion started by: cmccabe
3 Replies
LEARN ABOUT V7
join
JOIN(1) General Commands Manual JOIN(1)NAME
join - relational database operator
SYNOPSIS
join [ options ] file1 file2
DESCRIPTION
Join forms, on the standard output, a join of the two relations specified by the lines of file1 and file2. If file1 is `-', the standard
input is used.
File1 and file2 must be sorted in increasing ASCII collating sequence on the fields on which they are to be joined, normally the first in
each line.
There is one line in the output for each pair of lines in file1 and file2 that have identical join fields. The output line normally con-
sists of the common field, then the rest of the line from file1, then the rest of the line from file2.
Fields are normally separated by blank, tab or newline. In this case, multiple separators count as one, and leading separators are dis-
carded.
These options are recognized:
-an In addition to the normal output, produce a line for each unpairable line in file n, where n is 1 or 2.
-e s Replace empty output fields by string s.
-jn m Join on the mth field of file n. If n is missing, use the mth field in each file.
-o list
Each output line comprises the fields specifed in list, each element of which has the form n.m, where n is a file number and m is a
field number.
-tc Use character c as a separator (tab character). Every appearance of c in a line is significant.
SEE ALSO sort(1), comm(1), awk(1)BUGS
With default field separation, the collating sequence is that of sort -b; with -t, the sequence is that of a plain sort.
The conventions of join, sort, comm, uniq, look and awk(1) are wildly incongruous.
JOIN(1)