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
unix2dos(1)						      General Commands Manual						       unix2dos(1)

NAME
unix2dos - UNIX to DOS text file format converter SYNOPSYS
unix2dos [options] [-c convmode] [-o file ...] [-n infile outfile ...] Options: [-hkqV] [--help] [--keepdate] [--quiet] [--version] DESCRIPTION
This manual page documents unix2dos, the program that converts text files in UNIX format to DOS format. OPTIONS
The following options are available: -h --help Print online help. -k --keepdate Keep the date stamp of output file same as input file. -q --quiet Quiet mode. Suppress all warning and messages. -V --version Prints version information. -c --convmode convmode Sets conversion mode. Simulates unix2dos under SunOS. -o --oldfile file ... Old file mode. Convert the file and write output to it. The program default to run in this mode. Wildcard names may be used. -n --newfile infile outfile ... New file mode. Convert the infile and write output to outfile. File names must be given in pairs and wildcard names should NOT be used or you WILL lost your files. EXAMPLES
Get input from stdin and write output to stdout. unix2dos Convert and replace a.txt. Convert and replace b.txt. unix2dos a.txt b.txt unix2dos -o a.txt b.txt Convert and replace a.txt in ASCII conversion mode. Convert and replace b.txt in ISO conversion mode. unix2dos a.txt -c iso b.txt unix2dos -c ascii a.txt -c iso b.txt Convert and replace a.txt while keeping original date stamp. unix2dos -k a.txt unix2dos -k -o a.txt Convert a.txt and write to e.txt. unix2dos -n a.txt e.txt Convert a.txt and write to e.txt, keep date stamp of e.txt same as a.txt. unix2dos -k -n a.txt e.txt Convert and replace a.txt. Convert b.txt and write to e.txt. unix2dos a.txt -n b.txt e.txt unix2dos -o a.txt -n b.txt e.txt Convert c.txt and write to e.txt. Convert and replace a.txt. Convert and replace b.txt. Convert d.txt and write to f.txt. unix2dos -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt DIAGNOSTICS
BUGS
The program does not work properly under MSDOS in stdio processing mode. If you know why is that so, please tell me. AUTHOR
Benjamin Lin - ( blin@socs.uts.edu.au ) MISCELLANY
Tested environment: Linux 1.2.0 with GNU C 2.5.8 SunOS 4.1.3 with GNU C 2.6.3 MS-DOS 6.20 with Borland C++ 4.02 Suggestions and bug reports are welcome. SEE ALSO
dos2unix(1) 1995.03.31 unix2dos v2.2 unix2dos(1)
All times are GMT -4. The time now is 11:18 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy