linux comparar arquivo de texto [duplicado]

0

Eu tenho file1.txt e file2.txt , ambos contêm URLs, desejo criar um novo arquivo com as URLs exclusivas presentes em file2.txt e não em file1.txt .

Exemplo de arquivo de URLs:

aspencabinets.com.au
iiatca.org
energyoil.co.za
tevelatino.com
handball-schule.com
lindaestelle.com
latindancegrooves.com
ugurlu-ozturk.com
robertsdoneright.com
pactoconvex.com
ghaudit.org
keiramontalli.net
taksid.ee
katanics.hu
baggotpureescape.com
naechstenliebe.net
wiki.mbremer.de
boxplandesign.com.sg
lhasa.ca
roboticengineeringprojects.com
killergaming.info
nhswga.com
culnue.eu
fmovers.com
corpuschristicarolstream.org
promedmedikal.com
creationprints.com.au
tsukihime.com
    
por kingcope 09.02.2016 / 11:20

1 resposta

2

Use comm

primeiro, classifique os arquivos:

sort file1 -o file1_sorted
sort file2 -o file2_sorted

Claro que você pode usar

sort file1 -o file1

Para classificar no local

use a comunicação da seguinte forma:

comm -2 3 file2_sorted file1_sorted > newfile

comm compara arquivos classificados

Ou se o seu shell suportar a substituição de processos (bash, zsh e alguns kshs):

comm -23 <(sort file2) <(sort file1) > newfile
  • -3: remova a terceira coluna (URLs encontrados nos dois arquivos)
  • -2: remova a segunda coluna (somente URLs encontrados em file1_sorted )

Isso deixa apenas a primeira coluna (URLs encontrados somente em file2_sorted ).

    
por 09.02.2016 / 11:34

Tags