I wanted to compare two directories to find the differences. I could see that the number of members was different, but it was hard to see what was missing.
I browsed the web, and found that this was a commonly asked question, and often the solution was to write some Rexx and use the ISPF LM* functions. I felt this was the wrong way.
I had used Superc to compare members of different files – could it tell me same information about the member list – yes!
SuperC has different compare types
- File – Compares source data sets for differences, but does not show what
the differences are. - Line – Compares source data sets for line differences. It is record-oriented and points out inserted or deleted lines.
- Word – Compares source data sets for word differences. If two data sets contain the same words in the same order, SuperC considers them to be identical, even if those words are not
on the same lines. - Byte – Compares source data sets for byte differences. This compare type is most useful for comparing machine readable data.
Example output of the File comparison type.
NEW: COLIN.ZZZ.PROCLIB OLD: HLQ.Y.ABCNPARU MEMBER SUMMARY LISTING (FILE COMPARE) DIFF SAME MEMBERS N-BYTES O-BYTES N-LINES O-LINES HASH1 HASH2 ** ABC11111 171120 173200 2139 2165 78D5C 1113D ** ABC9999 640 640 8 8 AB58A AB58A
We can see
- ABC1111 is different because the “**” in the DIFF column, and the hash code at the right is different
- ABC9999 is the same in each because the “**” is in the SAME column, and the hash value is the same
You also get a summary of differences
10 TOTAL MEMBER(S) PROCESSED AS A PDS 1 TOTAL MEMBER(S) PROCESSED HAD CHANGES 9 TOTAL MEMBER(S) PROCESSED HAD NO CHANGES 9 TOTAL NEW FILE MEMBER(S) NOT PAIRED 179 TOTAL OLD FILE MEMBER(S) NOT PAIRED
List of members not in both
MEMBER SUMMARY LISTING (FILE COMPARE) NON-PAIRED NEW FILE MEMBERS | NON-PAIRED OLD FILE MEMBERS ABC$$$$$ | ZAA$$$$ ABCSCLRR | ZYZAPST5 | ZYZAPST6
- Member ABC$$$$ and one other are in the “new” PDS, but not in the “old” PDS.
- Member ZAA$$$$ and 2 others are in “old” PDS, but not in the “new” PDS.
Like most things – easy – once you know how do to it!
Using Line mode
When I used line mode I got output like
N-LN# O-LN# I - SYSNAME &SYSNAME. 00004 00003 D - SYSNAME S0W1
For one member, the “new-file” at line 4 was similar to the line in the “old-file” at line 3.
To get from the old file to the new file, delete the line with S0W1 in it and insert the line with &SYSNAME.