Sponsored Content
Top Forums Shell Programming and Scripting Bash to update file on prefix match in two directories Post 303043622 by RudiC on Sunday 2nd of February 2020 11:33:06 AM
Old 02-02-2020
How about getting your bash syntax right, first? What you post can't possibly run...

--- Post updated at 18:33 ---

OK, trying to guess what you're after, and making some assumptions, how about
Code:
TDIR="path/to/data"
for FN in ${TDIR}/*number*
  do    grep . ${FN%number*}* |
          awk ' {NFN = $0
                 sub (/\..*$/, "_file.txt", NFN)
                 sub (/^[^\.]*\./, "")
                 sub (/\.txt:/, "=")
                 print > NFN
                }'
   done




catfiles ${TDIR}/*file*
 
---------- data/AA-1_yy_file.txt: ----------

common=82.248581%
diff=138
number=46722024
test=50033

---------- data/ID-5_xx_file.txt: ----------

common=92.249581%
diff=180
number=67722024
test=59733

We assume a *number* file is always present, all files have a .txt suffix, and the order of entries being sorted by item is acceptable...

Last edited by RudiC; 02-02-2020 at 12:47 PM..
These 2 Users Gave Thanks to RudiC For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

how to extract paragraphs from file in BASH script followed by prefix ! , !! and !!!

I]hi all i am in confusion since last 2 days :( i posted thraed yesterday and some friends did help but still i couldnt get solution to my problem let it be very clear i have a long log file of alkatel switch and i have to seperate the minor major and critical alarms shown by ! , !! and !!!... (6 Replies)
Discussion started by: nabmufti
6 Replies

2. 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

3. Shell Programming and Scripting

awk match to update contents of file

I am trying to match $1 in file1 with $2 in file2. If a match is found then $3 and $4 of file2 are copied to file1. Both files are tab-delimeted and I am getting a syntax error and would also like to update file1 in-place without creating a new file, but am not sure how. Thank you :). file1 ... (19 Replies)
Discussion started by: cmccabe
19 Replies

4. Shell Programming and Scripting

Match and store numerical prefix to update files

In the bash below the unique headers of each vcf.gz are stored in a text file with the same name. That is if 16-0000-file.vcf.gz was used the header text file would be 16-0000-file_header.txt. There can be multiple vcf.gz in a directory, usually 3, that I need to fix the header in each file before... (6 Replies)
Discussion started by: cmccabe
6 Replies

5. 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

6. Shell Programming and Scripting

Perl to update field in file based of match to another file

In the perl below I am trying to set/update the value of $14 (last field) in file2, using the matching NM_ in $12 or $9 in file2 with the NM_ in $2 of file1. The lengths of $9 and $12 can be variable but what is consistent is the start pattern will always be NM_ and the end pattern is always ;... (4 Replies)
Discussion started by: cmccabe
4 Replies

7. 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

8. Shell Programming and Scripting

Bash to extract file prefix and from input to use in output

In the bash below which does execute I am trying to extract the contents of ${id} is 1234, as ${id} stores the variable that changes each time. After the path is removed the contents of ${id} are stored in pref, so they can be used in the output. Currently I am not able to extract the 1234 in the... (6 Replies)
Discussion started by: cmccabe
6 Replies

9. Shell Programming and Scripting

awk move select fields to match file prefix in two directories

In the awk below I am trying to use the file1 as a match to file2. In file2 the contents of $5,&6,and $7 (always tab-delimited) and are copied to the output under the header Quality metrics. The below executes but the output is empty. I have added comments to help and show my thinking. Thank you... (0 Replies)
Discussion started by: cmccabe
0 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
Test::LectroTest::RegressionTesting(3pm)		User Contributed Perl Documentation		  Test::LectroTest::RegressionTesting(3pm)

NAME
Test::LectroTest::RegressionTesting - How to do regression testing (for free!) SYNOPSIS
use Test::LectroTest regressions => "regressions.txt"; # -- OR -- use Test::LectroTest playback_failures => "regression_suite_for_my_module.txt", record_failures => "failures_in_the_field.txt"; # -- OR -- use Test::LectroTest::Compat regressions => "regressions.txt"; # -- OR -- use Test::LectroTest::Compat playback_failures => "regression_suite_for_my_module.txt", record_failures => "failures_in_the_field.txt"; DESCRIPTION
Say that LectroTest uncovers a bug in your software by finding a random test case that proves one of your properties to be false. If you apply a fix for the bug, how can you be sure that LectroTest will re-test the property using the exact same test case that "broke" it before, just to be certain the bug really is fixed? And how can you be sure that future changes to your code will not reintroduce the same bug without your knowing it? For situations like these, LectroTest can record failure-causing test cases to a file, and it can play those test cases back as part of its normal testing strategy. The easiest way to take advantage of this feature is to set the regressions parameter when you "use" Test::LectroTest or Test::LectroTest::Compat: use Test::LectroTest regressions => "regressions.txt"; This tells LectroTest to use the file "regressions.txt" for both recording and playing back failures. If you want to record and play back from separate files, use the record_failures and playback_failures options: use Test::LectroTest::Compat playback_failures => "regression_suite_for_my_module.txt", record_failures => "failures_in_the_field.txt"; Here is how it works: 1. When testing a property named N, LectroTest will check for a play-back file. If the file exists, LectroTest will search it for test cases associated with N. If any such test cases exist, LectroTest will play them back before and in addition to performing the usual, random testing of the property. 2. When performing the usual, random testing of a property named N, if a failure occurs (i.e., LectroTest finds a counterexample), LectroTest will record the test case that caused the failure to the recording file, associating the test case with the name N. NOTE: If you pass any of the recording or playback parameters to Test::LectroTest::Compat, you must have version 0.3500 or greater of Test::LectroTest installed. (Module authors, update your modules' build dependencies accordingly.) The Test::LectroTest module itself, however, has always ignored unfamiliar parameters, and thus these options are backward compatible with older versions. SEE ALSO
Test::LectroTest gives a quick overview of automatic, specification-based testing with LectroTest. This module accepts failure recording and play-back options. Test::LectroTest::Compat lets you mix LectroTest with the popular family of Test::Builder-based modules such as Test::Simple and Test::More. This module accepts failure recording and play-back options. LECTROTEST HOME
The LectroTest home is http://community.moertel.com/LectroTest. There you will find more documentation, presentations, mailing-list archives, a wiki, and other helpful LectroTest-related resources. It's also the best place to ask questions. AUTHOR
Tom Moertel (tom@moertel.com) COPYRIGHT and LICENSE Copyright (c) 2004-06 by Thomas G Moertel. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.12.3 2007-08-30 Test::LectroTest::RegressionTesting(3pm)
All times are GMT -4. The time now is 03:02 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy