2011-08-19 15 views
23

Tengo 2 archivos grandes y quiero hacer una diferencia entre las líneas superiores de cada archivo, pero no quiero usar archivos intermedios. Me gustaría hacer algo como eso:Cómo distinguir líneas superiores de dos archivos sin archivo intermedio

diff `head -n 2000 file1.log` `head -n 2000 file2.log` 

Recuerdo que he hecho algo así hace mucho tiempo, es decir. hacer un comando como head -n 2000 file1.log interpretado como un archivo. Pero no recuerdo cómo. Tal vez fue otro shell ...
Gracias.

Respuesta

45

Probablemente estés pensando en process substitution en bash. Por ejemplo, intente:

diff <(head -n 2000 file1.log) <(head -n 2000 file2.log) 
+0

Gracias, eso es exactamente lo que quería. – Tom97531

+0

Estoy obteniendo un error de sintaxis al ejecutar este 'diff <(head -n 1 file1.logt) <(head -n 1 file2.log)'. ** - sh: error de sintaxis cerca del token inesperado' ('** – AbhiNickz

+0

@AbhiNickz ¿Qué shell está usando? –

Cuestiones relacionadas