Sponsored Content
Top Forums Shell Programming and Scripting awk match to update contents of file Post 302981044 by RudiC on Tuesday 6th of September 2016 06:07:16 PM
Old 09-06-2016
Try
Code:
awk 'NR == FNR {T[$2] = $1 FS $2 FS $3 FS $4; next} $1 in T {$1 = T[$1]} 1' FS="\t" file2 file1
123
456
...	789	yyy	xxx
...	111	xxx	yyy
...	222	zzz	xxx
333
444
555

awk can't modify in place, you need to go via a temp file.
This User Gave Thanks to RudiC For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to update the contents in a file conditionally?

Hi All, I have a data file which has two columns Location and the Count. The file looks like this India 1 US 0 UK 2 China 0 What I have to do is whenever I fails to login to Oracle then I have to add 1 to the count for that location. Whenever my script fails to login to Oracle for a... (5 Replies)
Discussion started by: rajus19
5 Replies

2. Shell Programming and Scripting

update file contents using shell script

Hi, I am having a file which contains as below Names(aaaa ,bbbb ,cccc ,dddd) now i want the file to be updated with new value 'eeee' as below Names(aaaa ,bbbb ,cccc ,dddd ,eeee) Is there a way to script this ? Thanks, (5 Replies)
Discussion started by: drams
5 Replies

3. Shell Programming and Scripting

[Solved] Lookup a file and match the contents

Hi, I appreciate all who have been very helpful to me in providing valuable suggestions and replies. I want to write a script to look up a file and match the contents. Let me go through the scenario. Lets say i have two files Content file: abc, bcd, adh|bcdf|adh|wed bcf, cdf,... (2 Replies)
Discussion started by: forums123456
2 Replies

4. Shell Programming and Scripting

awk to update field file based on match

If $1 in file1 matches $2 in file2. Then the value in $2 of file2 is updated to $1"."$2 of file2. The awk seems to only match the two files but not update. Thank you :). awk awk 'NR==FNR{A ; next} $1 in A { $2 = a }1' file1 file2 file1 name version NM_000593 5 NM_001257406... (3 Replies)
Discussion started by: cmccabe
3 Replies

5. Shell Programming and Scripting

awk to update field in file based of match in another

I am trying to use awk to match two files that are tab-delimited. When a match is found between file1 $1 and file2 $4, $4 in file2 is updated using the $2 value in file1. If no match is found then the next line is processed. Thank you :). file1 uc001bwr.3 ADC uc001bws.3 ADC... (4 Replies)
Discussion started by: cmccabe
4 Replies

6. Shell Programming and Scripting

awk to update specific value in file with match and add +1 to specific digit

I am trying to use awk to match the NM_ in file with $1 of id which is tab-delimited. The NM_ will always be in the line of file that starts with > and be after the second _. When there is a match between each NM_ and id, then the value of $2 in id is substituted or used to update the NM_. Each NM_... (3 Replies)
Discussion started by: cmccabe
3 Replies

7. Shell Programming and Scripting

awk to update file based on partial match in field1 and exact match in field2

I am trying to create a cronjob that will run on startup that will look at a list.txt file to see if there is a later version of a database using database.txt as the source. The matching lines are written to output. $1 in database.txt will be in list.txt as a partial match. $2 of database.txt... (2 Replies)
Discussion started by: cmccabe
2 Replies

8. Shell Programming and Scripting

awk to update value in field of out file using contents of another Ask

In the out.txt below I am trying to use awk to update the contents of $9.. If $9 contains a + or - then $8 of out.txt is used as a key to lookup in $2 of file. When a match ( there will always be one) is found the $3 value of that file is used to update $9 of out.txt separated by a :. So the... (6 Replies)
Discussion started by: cmccabe
6 Replies

9. Shell Programming and Scripting

awk to update value based on pattern match in another file

In the awk, thanks you @RavinderSingh13, for the help in below, hopefully it is close as I am trying to update the value in $12 of the tab-delimeted file2 with the matching value in $1 of the space delimeted file1. I have added comments for each line as well. Thank you :). awk awk '$12 ==... (10 Replies)
Discussion started by: cmccabe
10 Replies

10. Shell Programming and Scripting

awk to update file based on match in 3 fields

Trying to use awk to store the value of $5 in file1 in array x. That array x is then used to search $4 of file1 to find aa match (I use x to skip the header in file1). Since $4 can have multiple strings in it seperated by a , (comma), I split them and iterate througn each split looking for a match.... (2 Replies)
Discussion started by: cmccabe
2 Replies
Config::Model::Loader(3pm)				User Contributed Perl Documentation				Config::Model::Loader(3pm)

NAME
Config::Model::Loader - Load serialized data into config tree VERSION
version 2.021 SYNOPSIS
use Config::Model; use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); # define configuration tree object my $model = Config::Model->new; $model->create_config_class( name => "Foo", element => [ [qw/foo bar/] => { type => 'leaf', value_type => 'string' }, ] ); $model ->create_config_class ( name => "MyClass", element => [ [qw/foo bar/] => { type => 'leaf', value_type => 'string' }, hash_of_nodes => { type => 'hash', # hash id index_type => 'string', cargo => { type => 'node', config_class_name => 'Foo' }, }, [qw/lista listb/] => { type => 'list', cargo => {type => 'leaf', value_type => 'string' } }, ], ) ; my $inst = $model->instance(root_class_name => 'MyClass' ); my $root = $inst->config_root ; # put data my $step = 'foo=FOO hash_of_nodes:fr foo=bonjour - hash_of_nodes:en foo=hello ! lista=foo,bar lista:2=baz listb:0=foo listb:1=baz'; $root->load( step => $step ); print $root->describe," " ; # name value type comment # foo FOO string # bar [undef] string # hash_of_nodes <Foo> node hash keys: "en" "fr" # lista foo,bar,baz list # listb foo,baz list # delete some data $root->load( step => 'lista~2' ); print $root->describe(element => 'lista')," " ; # name value type comment # lista foo,bar list # append some data $root->load( step => q!hash_of_nodes:en foo.=" world"! ); print $root->grab('hash_of_nodes:en')->describe(element => 'foo')," " ; # name value type comment # foo "hello world" string DESCRIPTION
This module is used directly by Config::Model::Node to load serialized configuration data into the configuration tree. Serialized data can be written by the user or produced by Config::Model::Dumper while dumping data from a configuration tree. CONSTRUCTOR
new ( ) No parameter. The constructor should be used only by Config::Model::Node. load string syntax The string is made of the following items (also called "actions") separated by spaces: - Go up one node ! Go to the root node of the configuration tree. xxx Go down using "xxx" element. (For "node" type element) xxx:yy Go down using "xxx" element and id "yy" (For "hash" or "list" element with "node" cargo_type) xxx=~/yy/ Go down using "xxx" element and loop over the ids that match the regex. (For "hash") For instance, with "OpenSsh" model, you could do Host=~/.*.debian.org/ user='foo-guest' to set "foo-user" users for all your debian accounts. xxx~yy Delete item referenced by "xxx" element and id "yy". For a list, this is equivalent to "splice xxx,yy,1". This command does not go down in the tree (since it has just deleted the element). I.e. a '"-"' is generally not needed afterwards. xxx=zz Set element "xxx" to value "yy". load also accepts to set elements with a quoted string. (For "leaf" element) For instance "foo="a quoted string"". Note that you cannot embed double quote in this string. I.e "foo="a "quoted" string"" will fail. xxx~ Undef element "xxx" xxx=z1,z2,z3 Set list element "xxx" to list "z1,z2,z3". Use ",," for undef values, and "" for empty values. I.e, for a list "('a',undef,'','c')", use "a,,"",c". xxx:yy=zz For "hash" element containing "leaf" cargo_type. Set the leaf identified by key "yy" to value "zz". Using "xxx=~/yy/=zz" is also possible. xxx.=zzz Will append "zzz" value to current values (valid for "leaf" elements). xxx#zzz or xxx:yyy#zzz Element annotation. Can be quoted or not quoted. Note that annotations are always placed at the end of an action item. I.e. "foo#comment", "foo:bar#comment" or "foo:bar=baz#comment" are valid. "foo#comment:bar" is not valid. Quotes You can surround indexes and values with double quotes. E.g.: a_string=""titi" and "toto"" Methods load ( ... ) Load data into the node tree (from the node passed with "node") and fill values as we go following the instructions passed with "step". ("step" can also be an array ref). Parameters are: node node ref of the root of the tree (of sub-root) to start the load from. step A string or an array ref containing the steps to load. See above for a description of the string. experience Specify the experience level used during the load (default: "master"). The experience can be "intermediate advanced master". The load will raise an exception if the step of the load string tries to access an element with experience higher than user's experience. check Whether to check values while loading. Either "yes" (default), "no" or "skip". Loading with "skip" will discard bad values. AUTHOR
Dominique Dumont, (ddumont at cpan dot org) SEE ALSO
Config::Model,Config::Model::Node,Config::Model::Dumper perl v5.14.2 2012-11-09 Config::Model::Loader(3pm)
All times are GMT -4. The time now is 09:17 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy