Here is my answer for you, but as you subverted your Read Only status, which was a result of your persistently breaking the forum rules, you are banned.
Code:
# For each key in %file1,
# 1. split the key into name/start parts
# 2. search for the record in file2 that BOTH:
# (a) the corresponding records have the same "name" field
# (b) has the smallest difference between $start and $middleno
# of any of the records
# 3. Print out both records in one line
# 4. Delete these record from the structures (so they cannot be matched again)
#
foreach $key (sort {$a <=> $b} keys %file1) {
my ($name, $start) = split(":",$key);
my $min = 2 ** 31; # start as maximum integer
my $smallest_key = undef;
for (my $i=0; $i <= $#file2_middle_keys; ++$i) {
my $current_key = $name .":". $file2_middle_keys[$i];
# skip entries that do not match the $name in file2 (see (1a), above)
next unless (exists $file2{ $current_key });
# calculate difference and see (see (1b), above)
my $diff = abs($file2_middle_keys[$i] - $start);
if ($i > 0 && $diff > $min) {
# stop -- difference is getting bigger. No need to proceed.
last;
}
if ($min > $diff) {
$min = abs($file2_middle_keys[$i] - $key);
$smallest_key = $current_key;
}
}
# answer of (2b) is in $smallest_key
if (defined $smallest_key) {
# (3)
print join(" ",
@{ $file1{$key} }[1,2,3],
@{ $file2{$smallest_key } }[3,1,2],
@{ $file1{$key} }[0],
)."\n";
# (4)
delete $file1{$key};
delete $file2{$smallest_key };
}
}
# - Licenced under AGPL (http://www.gnu.org/licenses/agpl.txt)
# - Author: Otheus [https://www.unix.com/members/302022384.html]
Hello,
I am needing to create a variable and assign it a value based on the value of a previosly defined variable... I am using KSH..
Example:
VAR1=COMPUTER1
I need another variable like ${VAR1}_FLAG="Y", so it would actually be COMPUTER1_FLAG="Y".
I will be looping through many values in... (2 Replies)
Hey all,
I am parsing a file which have records containing one of a number of files names:
".psd", ".cr2", ".crw" , ".cr", ".xi", ".jpg", ".xif" etc
Somewhere on each line there is a value "Namex.psd" "Namex.crw" etc. The position of this name is highly variable
I need to output all the ".psd"... (4 Replies)
Simple enough problem I think, I just can't seem to get it right.
The below doesn't work as intended, it's just a function defined in a much larger script:
CheckValues() {
for field in \
Group_ID \
Group_Title \
Rule_ID \
Rule_Severity \
... (2 Replies)
I have a group of variables myLINEcnt1 - myLINEcnt10. I'm trying to printout the values using a for loop. I am at the head banging stage since i'm sure it has to be a basic syntax issue that i can't figure out.
For myIPgrp in 1 2 3 4 5 6 7 8 9 10; do
here i want to output the value of... (4 Replies)
Hello All,
Maybe I'm Missing something here but I have NOOO idea what the heck is going on with this....?
I have a Variable that contains a PATTERN of what I'm considering "Illegal Characters". So what I'm doing is looping
through a string containing some of these "Illegal Characters". Now... (5 Replies)
Hi All,
I have a file which has hundred of records with fixed number of fields. In each record there is set of 8 characters which represent the duration of that activity. I want to sum up the duration present in all the records for a report. The problem is the duration changes per record so I... (5 Replies)
Hi all,
I have a source config file with variables like so:
eth1_ip=192.168.1.99
eth2_ip=192.168.1.123
eth3_ip=172.16.1.1
I am trying to run a script which loops based on the number of eth interfaces on a machine and therefore modifies the variable it calls in the environment based on the... (5 Replies)
Hello, I have a series of files in sub-directories that I want to loop through, process and name according to the input filename and the various parameters I'm using to process the files. I have a number of each, for example file names like AG005574, AG004788, AG003854 and parameter values like... (2 Replies)
Hi All,
i have below two files.
FILE:
NAME="/dev/sda" TYPE="disk" SIZE="60G" OWNER="root" GROUP="disk" MODE="brw-rw----" PKNAME="" MOUNTPOINT=""
NAME="/dev/sda1" TYPE="part" SIZE="500M" OWNER="root" GROUP="disk" MODE="brw-rw----" PKNAME="/dev/sda" MOUNTPOINT="/boot"
NAME="/dev/sda2"... (3 Replies)
Discussion started by: balu1234
3 Replies
LEARN ABOUT LINUX
xzcmp
XZDIFF(1) XZ Utils XZDIFF(1)NAME
xzcmp, xzdiff, lzcmp, lzdiff - compare compressed files
SYNOPSIS
xzcmp [cmp_options] file1 [file2]
xzdiff [diff_options] file1 [file2]
lzcmp [cmp_options] file1 [file2]
lzdiff [diff_options] file1 [file2]
DESCRIPTION
xzcmp and xzdiff invoke cmp(1) or diff(1) on files compressed with xz(1), lzma(1), gzip(1), bzip2(1), or lzop(1). All options specified
are passed directly to cmp(1) or diff(1). If only one file is specified, then the files compared are file1 (which must have a suffix of a
supported compression format) and file1 from which the compression format suffix has been stripped. If two files are specified, then they
are uncompressed if necessary and fed to cmp(1) or diff(1). The exit status from cmp(1) or diff(1) is preserved.
The names lzcmp and lzdiff are provided for backward compatibility with LZMA Utils.
SEE ALSO cmp(1), diff(1), xz(1), gzip(1), bzip2(1), lzop(1), zdiff(1)BUGS
Messages from the cmp(1) or diff(1) programs refer to temporary filenames instead of those specified.
Tukaani 2011-03-19 XZDIFF(1)