04-22-2009
Replace columns from File1 with columns from File2
Hi all,
I would like to replace some columns from file1 with columns from file2. Currently, I'm able to do it with the following command:
awk 'NR==FNR{a[NR]=$1;b[NR]=$2;c[NR]=$3;next;}
{$2=a[FNR];$4=b[FNR];$5=c[FNR];print}' file2 file1 > temp
mv -f temp file1
First, i make the changes and save it as a temp file. Then, i replace file1 with the temp file.
Is there any way i can write the changes to file1 directly without storing it in a temp file first.
How can i perform the same operation using sed?
Pls advice.
Thanks and Regards.
Example:
--------
File 1:
LAYOUT Label TEXT x1 x2 46 10 FOLLI018ULL
LAYOUT Label TEXT x1 x2 46 10 FOLLI018ULL
LAYOUT Label TEXT x1 x2 46 10 FOLLI018ULL
LAYOUT Label TEXT x1 x2 46 10 FOLLI018ULL
LAYOUT Label TEXT x1 x2 46 10 FOLLI018ULL
File 2:
V1 10 20
V5 100 20
V7 50 20
V15 20 50
V20 50 100
Output File 1:
LAYOUT V1 TEXT 10 20 46 10 FOLLI018ULL
LAYOUT V5 TEXT 100 20 46 10 FOLLI018ULL
LAYOUT V7 TEXT 50 20 46 10 FOLLI018ULL
LAYOUT V15 TEXT 20 50 46 10 FOLLI018ULL
LAYOUT V20 TEXT 50 100 46 10 FOLLI018ULL
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi All,
as you can see I'm pretty new to this board. :D
I'm struggling around with small script to search a few fields in another file.
Basically I have file1 looking like this:
15:38:28 sz:10001 pr:14.16
15:38:28 sz:10002 pr:18.41
15:38:29 sz:10003 pr:19.28
15:38:30 sz:10004... (1 Reply)
Discussion started by: floripoint
1 Replies
2. UNIX for Dummies Questions & Answers
Hi,
I have 2 files
File 1:
1 2 3 4 5 6 .......etc until column 300K
1 23 21 24 12 22
1 23 21 24 12 22
1 23 21 24 12 22
1 23 21 24 12 22
1 23 21 24 12 22
1 23 21 24 12 22
1 23 21 24 12 22
.
.
etc until row 1411
File 2: (14 Replies)
Discussion started by: sogi
14 Replies
3. Shell Programming and Scripting
hi,
I have two xml files with the name source.xml and tobe_replaced.xml.
Sample data:
source.xml contains:
<?xml version="1.0"?>
<product description="prod1" product_info="some/info">
<product description="prod2" product_info="xyz/allinfo">
<product description="abc/partialinfo"... (2 Replies)
Discussion started by: dragon.1431
2 Replies
4. Shell Programming and Scripting
Hi All,
I have file1 line below:
$myName$|xxx
Now I need to read the file1 and find for $myName$ in file2 and replace with xxx
file1:
$myName$|xxx
file2:
My name is $myName$
expected output in file2 after executing the script is below:
my name is xxx
Thanks, (8 Replies)
Discussion started by: gdevadas
8 Replies
5. Shell Programming and Scripting
Hi everyone,
I have file1 and file2 comma separated both.
file1 is:
Header1,Header2,Header3,Header4,Header5,Header6,Header7,Header8,Header9,Header10
Code7,,,,,,,,,
Code5,,,,,,,,,
Code3,,,,,,,,,
Code9,,,,,,,,,
Code2,,,,,,,,,file2... (17 Replies)
Discussion started by: cgkmal
17 Replies
6. Shell Programming and Scripting
I have 2 files:
file1.txt:
1|15|XXXXXX||9630716||0096000||30/04/2012|E|O|X||||20120525135617-30.04.2012|PAT66OLM|STA||||00001|STA_0096000_YYYPPPXTMEX00_20120525135617_02_P.pdf|... (2 Replies)
Discussion started by: pparthiv
2 Replies
7. UNIX for Dummies Questions & Answers
I have very limited coding skills but I'm wondering if someone could help me with this. There are many threads about matching strings in two files, but I have no idea how to add a column from one file to another based on a matching string.
I'm looking to match column1 in file1 to the number... (3 Replies)
Discussion started by: pathunkathunk
3 Replies
8. UNIX for Dummies Questions & Answers
I want to print only the lines in file2 that match file1, in the same order as they appear in file 1
file1
file2
desired output:
I'm getting the lines to match
awk 'FNR==NR {a++}; FNR!=NR && a' file1 file2
but they are in sorted order, which is not what I want:
Can anyone... (4 Replies)
Discussion started by: pathunkathunk
4 Replies
9. Shell Programming and Scripting
I am trying to use awk to find all the $2 values in file2 which is ~30MB and tab-delimited, that are between $2 and $3 in file1 which is ~2GB and tab-delimited.
I have just found out that I need to use $1 and $2 and $3 from file1 and $1 and $2of file2 must match $1 of file1 and be in the range... (6 Replies)
Discussion started by: cmccabe
6 Replies
10. Shell Programming and Scripting
I have of two space separated files:
==> File1 <==
PT|np_496075.1 st|K92748.1 st|K89648.1 PT|np_001300561.1
PT|np_497284.1 st|K90752.1 st|K90279.1 PT|np_740775.1
PT|np_497749.1 st|K90752.1 st|K92038.1 PT|np_490856.1
PT|np_497284.1 st|K90752.1 st|K88095.1 PT|np_494764.1
==> File 2 <==... (2 Replies)
Discussion started by: sammy777888
2 Replies
COMM(1) BSD General Commands Manual COMM(1)
NAME
comm -- select or reject lines common to two files
SYNOPSIS
comm [-123f] file1 file2
DESCRIPTION
The comm utility reads file1 and file2, which should be sorted lexically, and produces three text columns as output: lines only in file1;
lines only in file2; and lines in both files.
The filename ``-'' means the standard input.
The following options are available:
-1 Suppress printing of column 1.
-2 Suppress printing of column 2.
-3 Suppress printing of column 3.
-f Fold case in line comparisons.
Each column will have a number of tab characters prepended to it equal to the number of lower numbered columns that are being printed. For
example, if column number two is being suppressed, lines printed in column number one will not have any tabs preceding them, and lines
printed in column number three will have one.
comm assumes that the files are lexically sorted; all characters participate in line comparisons.
EXIT STATUS
comm exits 0 on success, >0 if an error occurred.
SEE ALSO
cmp(1), diff(1), sort(1), uniq(1)
STANDARDS
The comm utility conforms to IEEE Std 1003.2-1992 (``POSIX.2'').
BSD
June 6, 1993 BSD