Encontre linhas exclusivas com base em apenas uma seção

1

Eu estou querendo saber se existe uma maneira de dividir as linhas por algum caractere (por exemplo, : ) e encontrar linhas exclusivas com base em uma parte dessa divisão.

Por exemplo, se eu tivesse o seguinte canalizado via stdin

file1: line 4
file1: line 5
file1: line 6
file2: line 1
file2: line 2
file2: line 1
file53: line 67
file24: line 412

Existe uma maneira de extrair apenas uma linha por arquivo, por exemplo:

file1: line 4
file2: line 1
file53: line 67
file24: line 412

Ou melhor ainda:

file1
file2
file53
file24

Obrigado rapazes

    
por Tobias Edwards 14.01.2016 / 04:39

2 respostas

1

Isso pode ser feito facilmente com alguns utilitários comuns:

cut -d : -f 1 input.txt | uniq
  • cut extrai campos do arquivo de entrada. -d denota o caractere delimitador (neste caso, um : ) e -f 1 diz para extrair o primeiro campo.
  • uniq remove linhas adjacentes repetidas da entrada
por 14.01.2016 / 05:24
0

Como todos os meus resultados tinham o mesmo formato (os arquivos estavam no diretório src/ ), consegui usar o seguinte comando:

cat input.txt | tr ':' '\n' | grep 'src/' | uniq

    
por 14.01.2016 / 04:59