Sponsored Content
Top Forums Shell Programming and Scripting awk - Compare files in two different directories Post 302933242 by High-T on Thursday 29th of January 2015 01:47:29 AM
Old 01-29-2015
awk - Compare files in two different directories

Hi,
My script works fine when I have both input files in the same directory but when I put on of the input file in another directory, the output does not show up.

SCRIPT:

Code:
awk '
  BEGIN {
    OFS="\t"
    out = "File3.txt"}
NR==FNR && NF {a[substr($0,1,8)]=$0; next}
function print_77_99() {
    if (key in a) 
      print "77", line[key] > out
}
 $1 == "01" {
    if (FNR > 1) print_77_99()
    key = $4 $3 $2
 lines = ""  
}
  { print > out
    lines = lines $0 "\n"  }  END {print_77_99()}
' File2.txt File1.txt


When I am trying to change the input directory path of File1.txt only, but the output File3.txt becomes empty.
Script works fine as long as both input files (File1.txt, File2.txt) are in the same directory.

EXAMPLE OF SCRIPT MODIFIED:

Code:
awk '
  BEGIN {
    OFS="\t"
    out = "File3.txt"
path-input = "/DR/m/"}
NR==FNR && NF {a[substr($0,1,8)]=$0; next}
function print_77_99() {
    if (key in a) 
      print "77", line[key] > out
}
 $1 == "01" {
    if (FNR > 1) print_77_99()
    key = $4 $3 $2
 lines = ""  
}
  { print > out
    lines = lines $0 "\n"  }  END {print_77_99()}
' File2.txt ${path-input}/File1.txt

Is there a better way to do it?

Any help is appriciated.
Thanks,

File1.txt

Code:
01  89  68  5000
02  83  11
04  83  9   02
03  83  00
06  83  00
07  83  11  RT0429
01  44  73  8800
02  44  73
04  44  73   02
03  44  73
06  44  73
07  44  11  RT  0789


File2.txt

Code:
50006889RT0429 NARD /3010  /E     /C A87545457          /  //                ///11        ///

51002387 NARD /3000  /E     /S N054896334IV          /  //                ///11        ///


Last edited by High-T; 01-29-2015 at 03:13 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Compare files from two directories

HI, i want to compare one file from one directory to many files in other directory. means in my /DIR/20070930/b/STG* directory i have only one file and in /DIR/20070930/a/STG* directory i have many files. so i want to check the name of that files should be present in other directory or not ... (2 Replies)
Discussion started by: ravi214u
2 Replies

2. Shell Programming and Scripting

compare db zone files in 2 directories

Hi, I am in need of a way to compare ( perhaps a shell script or Perl ) many db.X files that are located in 2 separate directories but strip out the first 11 lines from ; ; THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT IT. ; THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT IT. ; THIS... (2 Replies)
Discussion started by: richsark
2 Replies

3. Shell Programming and Scripting

compare files in two directories and output changed files to third directory

I have searched about 30 threads, a load of Google pages and cannot find what I am looking for. I have some of the parts but not the whole. I cannot seem to get the puzzle fit together. I have three folders, two of which contain different versions of multiple files, dist/file1.php dist/file2.php... (4 Replies)
Discussion started by: bkeep
4 Replies

4. UNIX for Dummies Questions & Answers

compare all files under directories

Hello I am very new to Unix. I am actually using the C shell to write a program that will compare all the files in the directory and subdirectores and print out the ones that are identical, I am assuming identical by name or text Thank you (2 Replies)
Discussion started by: ga.miami56
2 Replies

5. UNIX for Dummies Questions & Answers

How to compare files in 2 directories?

Hi, I want to compare the content of 2 directories and list down both the duplicate and unique files from each directory. Tried to use diff but but not able to achieve the result. For example, DirA FileX FileY FileZ DirB FileY The desired outcome is Duplication: FileY... (1 Reply)
Discussion started by: Andre_2008
1 Replies

6. Shell Programming and Scripting

how to compare two files in different directories

Hi all , Can any one give me the solution for below query. I have two files . firstfile: xyz123 abc234 text2456 secondfile (\home\test) xyz123:ram ab34:scrit text2456:maven After you compare the ouput should the the common items in both files (2 Replies)
Discussion started by: sravan008
2 Replies

7. UNIX for Dummies Questions & Answers

Compare files in two directories

Hi All, I have two directories that has some files, some of the files are common to both of them like : ls -l dir1 file1 file2 file3 ls -l dir2 file1 file2 file3 file4 file5 Now i want to get the files from dir2 that are not present in dir1 (means i want to get... (2 Replies)
Discussion started by: mukulverma2408
2 Replies

8. Shell Programming and Scripting

Compare files in directories with md5sum

And not to start. I can compare files, that's easy. The problem is that I compare files in a directory, and check if these files exist in another directory. The problem is that the file names are not the same. So I have to compare with "md5sum" or something similar. How I can do? All this in... (7 Replies)
Discussion started by: Jomeaide
7 Replies

9. Shell Programming and Scripting

Compare files of 2 directories

Hi all, I have 2 directories dir1 and dir2 which contains many xml files. I need to compare files of dir1 with that of dir2 and if they match, I need to cut it from dir1 and paste it in dir2. I need to do this thru scripts. I'm currently investigating on the diff command. Please help me write... (6 Replies)
Discussion started by: frum
6 Replies

10. Shell Programming and Scripting

Compare files with different names in different directories

Hi, I have a requirement to compare files in different directories with different names. The files have a datestamp in their name (It might not be a sequential datetimestamp). This is for Redhat Linux. I have more than 5 directories and more than 10 file in each directory to be compared. ... (4 Replies)
Discussion started by: GosarJunk
4 Replies
ECACCESS-FILE-MOVE(1p)					User Contributed Perl Documentation				    ECACCESS-FILE-MOVE(1p)

NAME
ecaccess-file-move - Move or Rename ECaccess Files SYNOPSIS
ecaccess-file-move -version|-help|-manual ecaccess-file-move [-debug] source-ecaccess-file target-ecaccess-file DESCRIPTION
Allow moving an ECaccess File. When the move occurs within the same ECaccess File System then it is a rename. When the move occurs across two different ECaccess File Systems then first a copy is done and then a delete of the original file is done (e.g. similar to ecaccess- file-copy ... -erase). The source-ecaccess-file and target-ecaccess-file are in the form [domain:][/user-id/]path. Please read the "Shell commands -> File Management" section of the "ecaccess" guide for more information on the ECaccess File System. ARGUMENTS
source-ecaccess-file The source ECaccess File name. target-ecaccess-file The target ECaccess File name. OPTIONS
-version Display version number and exits. -help Print a brief help message and exits. -manual Prints the manual page and exits. -debug Display the SOAP messages exchanged. EXAMPLES
ecaccess-file-move ec:test1.txt ec:test2.txt Rename the test1.txt file in the ECFS directory of the authenticated user in test2.txt. ecaccess-file-move ec:test1.txt home:test2.txt Copy the test1.txt file from the ECFS directory of the authenticated user to the test2.txt file in the $HOME directory of the authenticated user, then delete the test1.txt file from ECFS. SEE ALSO
ecaccess-file-delete, ecaccess-file-get, ecaccess-file-mget, ecaccess-file-modtime, ecaccess-file-mput, ecaccess-file-rmdir, ecaccess-file- copy, ecaccess-file-dir, ecaccess-file-mdelete, ecaccess-file-mkdir, ecaccess-file-chmod, ecaccess-file-put, ecaccess-file-size and ecaccess. perl v5.14.2 2012-04-16 ECACCESS-FILE-MOVE(1p)
All times are GMT -4. The time now is 02:14 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy