GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo diferenciar solo la primera línea de dos archivos?

Aquí tienes:

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

(esto no devolvería nada en absoluto).

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

Returns:
2c2
< 1
---
> 3

Podrías incorporar eso en un guión para hacer las cosas que mencionas.

#!/bin/bash

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

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

Para usar eso, simplemente haga que el script sea ejecutable con chmod +x nameofscript.sh y luego para ejecutar, ./nameofscript.sh ~/file1 ~/Docs/file2 Eso deja el número predeterminado de líneas en 1, si desea agregar más, agregue un número al final de ese comando.

(O podría hacer cambios en su secuencia de comandos con -f1 archivo1 -f2 archivo2 -n 1, pero no recuerdo en mi cabeza la declaración del caso para eso).

head devuelve desde el principio el número de líneas sugerido por -n . Si quisieras hacerlo a la inversa, sería tail -n ${numLines} (la cola hace desde el final hacia atrás el número de líneas).

Editar 10/5/16:

Esto es específico de Bash (y shells compatibles). Si necesita usar esto de otra cosa:

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

Linux
  1. ¿Cómo insertar texto antes de la primera línea de un archivo?

  2. ¿Cómo obtener un recuento de archivos en un directorio usando la línea de comando?

  3. Diff informa que dos archivos difieren, ¡aunque son iguales!?

  4. ¿Cómo diferencia un directorio solo para archivos de un tipo específico?

  5. Cómo obtener la diferencia (solo adiciones) entre dos archivos en Linux

Cómo leer archivos línea por línea en Bash

Cómo buscar archivos desde la línea de comandos de Linux

Cómo encontrar archivos en la línea de comandos de Ubuntu

Cómo comparar dos archivos en la terminal de Linux

Cómo descargar archivos en Rocky Linux 8 en la línea de comandos usando wget

¿Cómo puedo diferenciar dos secciones del mismo archivo?