Linux – How do I highlight the differences between subsequent lines in a file?

How do I highlight the differences between subsequent lines in a file?… here is a solution to the problem.

How do I highlight the differences between subsequent lines in a file?

I did a lot of emergency analysis for large log file analysis. This often requires tracing logs and looking for changes.

I longed for a solution to highlight these changes and make it easier for the eye to track.

I investigated the tools, but nothing seemed to meet my needs. I’ve written some rough scripts in Perl, but I want a more complete solution.

Can someone recommend a tool for this?

Solution

Edit the distance

Wikipedia:
The edit distance between two strings is the minimum number of operations required to convert one string to another, where the operation is to insert, delete, or replace a single character.

public static int LevenshteinDistance(char[] s1, char[] s2) {
    int s1p = s1.length, s2p = s2.length;
    int[][] num = new int[s1p + 1][s2p + 1];

 fill arrays
    for (int i = 0; i <= s1p; i++)
        num[i][0] = i;

for (int i = 0; i <= s2p; i++)
        num[0][i] = i;

for (int i = 1; i <= s1p; i++)
        for (int j = 1; j <= s2p; j++)
            num[i][j] = Math.min(Math.min(num[i - 1][j] + 1,
                    num[i][j - 1] + 1), num[i - 1][j - 1]
                    + (s1[i - 1] == s2[j - 1] ? 0 : 1));

return num[s1p][s2p];
}

Java sample application

String differences

alt text

The application uses the LCS algorithm to concatenate 2 text inputs into 1. The result will contain a minimal set of instructions to create a string for another string. Displays concatenated text below the command.

Download the app:
String Diff.jar

Download source:
Diff.java

Related Problems and Solutions