suchen
HeimBetrieb und InstandhaltungBetrieb und Wartung von LinuxEinfache Implementierung der Sortierung und Deduplizierung großer Dateien

有一道校招生的面试题,是要给一个很大的文件(不能全部放内存,比如1T)按行来排序和去重。

一种简单解决方案就是分而治之,先打大文件分词大小均匀的若干个小文件,然后对小文件排好序,最后再Merge所有的小文件,在Merge的过程中去掉重复的内容。

在Linux下实现这个逻辑甚至不用自己写代码,只要用shell内置的一些命令: split, sort就足够了。我们把这个流程用脚本串起来,写到shell脚本文件里。文件名叫sort_uniq.sh.

#!/bin/bash
lines=$(wc -l $1 | sed 's/ .*//g')
lines_per_file=`expr $lines / 20`
split -d -l $lines_per_file $1 __part_$1
for file in __part_*
do
{
  sort $file > sort_$file
} &
done
wait
sort -smu sort_* > $2
rm -f __part_*
rm -f sort_*

使用方法:./sort_uniq.sh file_to_be_sort file_sorted

这段代码把大文件分词20或21个小文件,后台并行排序各个小文件,最后合并结果并去重。

如果只要去重,不需要排序,还有另外一种思路:对文件的每一行计算hash值,按照hash值把该行内容放到某个小文件中,假设需要分词100个小文件,则可以按照(hash % 100)来分发文件内容,然后在小文件中实现去重就可以了。

Das obige ist der detaillierte Inhalt vonEinfache Implementierung der Sortierung und Deduplizierung großer Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wartungsmodus unter Linux: Wann und warum verwenden Sie ihnWartungsmodus unter Linux: Wann und warum verwenden Sie ihnApr 25, 2025 am 12:15 AM

Das Timing und die Gründe für die Verwendung des Linux -Wartungsmodus: 1) Wenn das System startet, 2) bei der Durchführung großer Systemaktualisierungen oder -Upgrades, 3) bei der Durchführung von Dateisystemwartungen. Der Wartungsmodus bietet eine sichere und kontrollierte Umgebung, die die Sicherheit und Effizienz der betrieblichen Sicherheit gewährleistet, die Auswirkungen auf Benutzer verringert und die Systemsicherheit verbessert.

Linux: Wesentliche Befehle und OperationenLinux: Wesentliche Befehle und OperationenApr 24, 2025 am 12:20 AM

Unentbehrliche Befehle in Linux gehören: 1.LS: Listenverzeichnisinhalt; 2.CD: Arbeitsverzeichnis ändern; 3.MKDIR: Erstellen Sie ein neues Verzeichnis; 4.RM: Datei oder Verzeichnis löschen; 5.CP: Datei oder Verzeichnis kopieren; 6.MV: Datei oder Verzeichnis verschieben oder umbenennen. Diese Befehle helfen Benutzern, Dateien und Systeme effizient zu verwalten, indem sie mit dem Kernel interagieren.

Linux -Operationen: Verwalten von Dateien, Verzeichnissen und BerechtigungenLinux -Operationen: Verwalten von Dateien, Verzeichnissen und BerechtigungenApr 23, 2025 am 12:19 AM

In Linux verwendet die Datei- und Verzeichnisverwaltung LS-, CD-, MKDIR-, RM-, CP-, MV -Befehle und Berechtigungsverwaltung. 1. Datei- und Verzeichnisverwaltungsbefehle wie LS-L-Liste detaillierte Informationen, MKDIR-P erstellen rekursiv Verzeichnisse. 2. Befehle für Berechtigungsverwaltungen wie CHMOD755File -Dateiberechtigungen, CHOWNUSERFILE -Änderungen Dateibesitzer und CHGRPGroupFile -Änderungsdateigruppe. Diese Befehle basieren auf der Dateisystemstruktur sowie auf Benutzer- und Gruppensystemen sowie über Systemaufrufe und Metadaten.

Was ist der Wartungsmodus unter Linux? ErklärtWas ist der Wartungsmodus unter Linux? ErklärtApr 22, 2025 am 12:06 AM

MaintenancemodeInLinuxisaspecialBootenvironmentforcriticalSystemMaintenancetaSs.itAllowsAdministratorStoperformTasksSetPasswords, Reparaturfilmsysteme, andRecoveringingFrombootFailuresinimalenvironment.ToentermineCentontenanceMode, InterrupttheBoBoBoBoBoBoBoBoBeBowooSystem

Linux: Ein tiefes Eintauchen in seine grundlegenden TeileLinux: Ein tiefes Eintauchen in seine grundlegenden TeileApr 21, 2025 am 12:03 AM

Zu den Kernkomponenten von Linux gehören Kernel, Dateisystem, Shell, Benutzer- und Kernelraum, Gerätetreiber sowie Leistungsoptimierung sowie Best Practices. 1) Der Kernel ist der Kern des Systems und verwaltet Hardware, Speicher und Prozesse. 2) Das Dateisystem organisiert Daten und unterstützt mehrere Typen wie Ext4, BTRFS und XFS. 3) Shell ist das Kommandozentrum, in dem Benutzer mit dem System interagieren und das Skript unterstützt. 4) Separate Benutzerraum vom Kernelraum, um die Systemstabilität zu gewährleisten. 5) Der Gerätetreiber verbindet die Hardware mit dem Betriebssystem. 6) Die Leistungsoptimierung umfasst die Konfiguration des Tuning -Systems und die folgenden Best Practices.

Linux -Architektur: Enthüllung der 5 GrundkomponentenLinux -Architektur: Enthüllung der 5 GrundkomponentenApr 20, 2025 am 12:04 AM

Die fünf grundlegenden Komponenten des Linux -Systems sind: 1. Kernel, 2. Systembibliothek, 3. System Utilities, 4. Grafische Benutzeroberfläche, 5. Anwendungen. Der Kernel verwaltet Hardware -Ressourcen, die Systembibliothek bietet vorkompilierte Funktionen, Systemversorgungsunternehmen werden für die Systemverwaltung verwendet, die GUI bietet visuelle Interaktion und Anwendungen verwenden diese Komponenten, um Funktionen zu implementieren.

Linux -Operationen: Verwendung des WartungsmodusLinux -Operationen: Verwendung des WartungsmodusApr 19, 2025 am 12:08 AM

Der Linux -Wartungsmodus kann über das Grub -Menü eingegeben werden. Die spezifischen Schritte sind: 1) Wählen Sie den Kernel im GRUB -Menü aus und drücken Sie 'e', ​​um zu bearbeiten, 2) hinzu 'Single' oder '1' am Ende der "Linux" -Zeile 3) Drücken Sie Strg X, um zu starten. Der Wartungsmodus bietet eine sichere Umgebung für Aufgaben wie Systemreparaturen, Kennwortreset und System -Upgrade.

Linux: Eingeben Sie den Wiederherstellungsmodus (und die Wartung)Linux: Eingeben Sie den Wiederherstellungsmodus (und die Wartung)Apr 18, 2025 am 12:05 AM

Die Schritte zur Eingabe des Linux -Wiederherstellungsmodus sind: 1. Starten Sie das System neu und drücken Sie die spezifische Taste, um das Grub -Menü einzugeben. 2. Wählen Sie die Option mit (RecoveryMode) aus; 3. Wählen Sie den Vorgang im Menü Wiederherstellungsmodus wie FSCK oder Root aus. Mit dem Wiederherstellungsmodus können Sie das System im Einzelbenutzermodus starten, Dateisystemprüfungen und -reparaturen durchführen, Konfigurationsdateien bearbeiten und andere Vorgänge zur Lösung von Systemproblemen unterstützen.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion