![]() |
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.
|
|
Google unix.com
|
|||||||
| Foren | Registrieren | Forum-Regeln | Links | Alben | FAQ | Benutzerliste | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier. |
Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
|
||||
| Faden | Thread Starter | Forum | Antworten | Last Post |
| Datei Vergleich ... Hilfe benötigt. | er_ashu | UNIX for Dummies Questions & Answers | 4 | 05-15-2008 10:37 PM |
| Vergleich Unix-und Windows-Datei sysytem | localp | UNIX for Dummies Questions & Answers | 1 | 04-11-2008 05:02 AM |
| Ausgabe-Format - im Vergleich mit der I / P-Datei | velappangs | Shell Programmierung und Scripting | 1 | 04-03-2008 07:31 AM |
| Dateivergleich Skript | tiger99 | Shell Programmierung und Scripting | 1 | 01-30-2008 10:47 AM |
| File Time Vergleich Anfrage | pc9456 | UNIX für Fortgeschrittene und Experten | 2 | 07-23-2003 04:05 PM |
![]() |
|
|
LinkBack | Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
|
|
||||
|
Datei-Vergleich
Ich habe den Vergleich zweier Text-Dateien, nur sehr wenige der in diesen Dateien haben einige Unterschiede in eine Spalte.
Die Dateien, Größe in GB. Beispiel sind wie folgt: 11111122222222333333aaaaaaaaaabbbbbbbbbccccccccdddddd 11111122222222333333aaaaaaaaaabbbbbbbbbccccccccddeddd Also vorausgesetzt, diese beiden Zeilen aus datei1 und datei2 bzw., ich sollte die zweite Zeile in der Datei eine neue Datei, die Ausgabe ist der Unterschied Datei. Was ich möchte ist, lesen line1 von Datei1 und Schleife durch alle Zeilen in datei2 und beendet werden, wenn eine Übereinstimmung gefunden wird, ansonsten drucken Sie es aus, dass die Zeile zu Ausgabedatei. Und wiederholen Sie die gleichen Schritte für alle Zeilen aus datei1. Über jede Hilfe in dieser Hinsicht. |
|
||||
|
Wenn ich verstehe, was Sie zu tun versuchen richtig, hier ist eine schnelle Bash-Skript.
Code:
#!/bin/bash
compareFile = "/path/to/file/to/compare.txt"
outputFile = "/path/to/outputFile.txt"
for filename in /some/dir/of/text/files/*.txt; do
numlines=`cat $filename | wc -l`
for i in `seq 1 $numlines`; do
current=`cat $filename | head -$i | tail -1`
grep -q "${current}" ${compareFile}
if [ $? != 0 ]; then
#doesn't exist, append to $outputFile
echo "${filename}:${current}" >> ${outputFile}
fi
done
done
|
|
||||
|
die folgende (in der Regel in / usr / bin /)
Es ist eine einzelne ausführbare Befehl, sollte Teil des coreutils-Paket, wenn Sie Linux. wenn es auf Ihrem System vorhanden ist, ändern Sie die Schrift seq \u003d "/ pfad / zu / f" dann ändern Sie die Erklärung für die Verwendung der Variablen zu: for i in `seq $ (...) |
|
||||
|
Zitat:
Auch seq ist kein Standard-Kommando in einigen * nix OS. Deshalb, wenn Sie Loops, dass Schleife über einen Zähler, eine while-Schleife verwendet werden. zB beim [$ num-le $ numlines] |
![]() |
| Lesezeichen |
| Tags |
| Linux |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|