GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann man nur die erste Zeile von zwei Dateien unterscheiden?

Bitte schön:

diff <(head -n 1 file1) <(head -n 1 file2)

(Dies würde überhaupt nichts zurückgeben).

diff <(head -n 2 file1) <(head -n 2 file2)

Returns:
2c2
< 1
---
> 3

Sie könnten das in ein Skript einbauen, um die von Ihnen erwähnten Dinge zu tun.

#!/bin/bash

fileOne=${1}
fileTwo=${2}
numLines=${3:-"1"}

diff <(head -n ${numLines} ${fileOne}) <(head -n ${numLines} ${fileTwo})

Um das zu verwenden, machen Sie das Skript einfach mit chmod +x nameofscript.sh ausführbar und dann zur Ausführung ./nameofscript.sh ~/file1 ~/Docs/file2 Dadurch bleibt die Standardanzahl der Zeilen bei 1, wenn Sie mehr möchten, hängen Sie eine Zahl an das Ende dieses Befehls an.

(Oder Sie könnten in Ihrem Skript mit -f1 Datei1 -f2 Datei2 -n 1 wechseln, aber ich erinnere mich nicht an die Groß-/Kleinschreibung dafür).

head gibt von Anfang an die Anzahl der Zeilen zurück, wie von -n vorgeschlagen . Wenn Sie es umgekehrt machen möchten, wäre es tail -n ${numLines} (Schwanz macht vom Ende zurück die Anzahl der Zeilen).

Bearbeiten 10.05.16:

Dies ist spezifisch für Bash (und kompatible Shells). Wenn Sie dies von etwas anderem verwenden müssen:

bash -c 'diff <(...) <(...)'

Linux
  1. Suchen von Dateien in der Befehlszeile (How To)

  2. Wie fügt man Text vor der ersten Zeile einer Datei ein?

  3. Diff meldet, dass sich zwei Dateien unterscheiden, obwohl sie gleich sind!?

  4. Wie teilt man eine Datei und behält die erste Zeile in jedem der Teile bei?

  5. So erhalten Sie den Unterschied (nur Ergänzungen) zwischen zwei Dateien in Linux

So lesen Sie Dateien Zeile für Zeile in Bash

So suchen Sie nach Dateien über die Linux-Befehlszeile

So finden Sie Dateien in der Ubuntu-Befehlszeile

So vergleichen Sie zwei Dateien im Linux-Terminal

So laden Sie Dateien in Rocky Linux 8 über die Befehlszeile mit wget herunter

Wie kann ich zwei Abschnitte derselben Datei unterscheiden?