Como gravar o conteúdo de um arquivo em um novo arquivo removendo linhas repetidas [duplicado]

3

Por exemplo, um arquivo file1.txt contém

Hi how are you  
hello  
today is monday  
hello  
I am fine  
Hi how are you 

Após o processamento de file1.txt , ele deve gravar em file2.txt e o conteúdo deve ser assim sem repetir as mesmas linhas.

Hi how are you  
hello  
today is monday  
I am fine  

Qual comando eu posso usar para fazer isso no terminal linux?

    
por Navaneeth Cp 25.01.2016 / 07:39

2 respostas

5

Esta é uma tarefa fácil para sort , use a opção exclusiva ( -u ) de sort :

% sort -u file1.txt
hello
Hi how are you
I am fine
today is monday

Para salvá-lo em file2.txt :

sort -u file1.txt >file2.txt

Se você deseja preservar o pedido inicial:

% nl file1.txt | sort -uk2,2 | sort -k1,1n | cut -f2
Hi how are you
hello
today is monday
I am fine
    
por 25.01.2016 / 07:45
6
start cmd:> awk 'lines[$0]++ == 0' input
Hi how are you
hello  
today is monday  
I am fine
    
por 25.01.2016 / 08:01