Kommandoen diff <(wget -q -O - URL1) <(wget -q -O - URL2)
i Linux bruges til at sammenligne indholdet af to webadresser (URL'er) ved hjælp af diff
-værktøjet. Her er en trin-for-trin forklaring af, hvordan kommandoen fungerer:
wget -q -O - URL1
: Henter indholdet fra URL1
uden at vise output (takket være -q
flaget) og sender det til standard output (takket være -O -
flaget).wget -q -O - URL2
: Henter indholdet fra URL2
på samme måde som ovenfor.<(command)
: Processubstitution, som gør det muligt at bruge output fra en kommando som en fil. I dette tilfælde bruges output fra wget
som input til diff
.diff
: Sammenligner indholdet af de to streams og viser forskellene.For at håndtere flere streams i et script kan du bruge Python eller Perl. Her er eksempler på begge:
import subprocess
def fetch_url_content(url):
result = subprocess.run(['wget', '-q', '-O', '-', url], capture_output=True, text=True)
return result.stdout
def compare_urls(url1, url2):
content1 = fetch_url_content(url1)
content2 = fetch_url_content(url2)
with open('file1.txt', 'w') as f1, open('file2.txt', 'w') as f2:
f1.write(content1)
f2.write(content2)
result = subprocess.run(['diff', 'file1.txt', 'file2.txt'], capture_output=True, text=True)
print(result.stdout)
# Eksempel brug
url1 = 'http://example.com/page1'
url2 = 'http://example.com/page2'
compare_urls(url1, url2)
use strict;
use warnings;
use LWP::Simple;
sub fetch_url_content {
my ($url) = @_;
return get($url);
}
sub compare_urls {
my ($url1, $url2) = @_;
my $content1 = fetch_url_content($url1);
my $content2 = fetch_url_content($url2);
open my $fh1, '>', 'file1.txt' or die $!;
print $fh1 $content1;
close $fh1;
open my $fh2, '>', 'file2.txt' or die $!;
print $fh2 $content2;
close $fh2;
my $diff = `diff file1.txt file2.txt`;
print $diff;
}
# Eksempel brug
my $url1 = 'http://example.com/page1';
my $url2 = 'http://example.com/page2';
compare_urls($url1, $url2);
Begge eksempler viser, hvordan man kan hente indhold fra to URL'er, gemme dem i midlertidige filer og derefter bruge diff
til at sammenligne dem. Dette kan udvides til at håndtere flere streams ved at gentage processen for flere URL'er.
Med Handyhand kan du nemt få hjælp til dine Linux-opgaver og programmering. Opret din opgave gratis, og modtag bud fra dygtige freelancere på få minutter. Uanset om du har brug for assistance til installation, fejlfinding eller kodning, er Handyhand din løsning for hurtig og effektiv hjælp.