Extraia alguns nomes de um arquivo

0

Então, meu problema é que eu tenho um arquivo com vários nomes, e quero extrair informações usando um comando. Eu quero alguns dos nomes começando com um sobrenome específico .. por exemplo "d". É uma lista muito grande e quero facilitar o trabalho.

    
por MassU 06.12.2015 / 14:38

2 respostas

1

Usando o exemplo que você deu, primeiro precisamos obter os dados da página da Web . Copiei a primeira tabela, colei-a em uma planilha (LibreCalc no meu caso), depois a exportei como um arquivo csv para list.csv. O arquivo resultante é assim:

1921,2:47:29.8,Florestano Benedetti (ITA),1921-09-20,Bologna,Italy
1922,2:46:26,Gabriel Ruotsalainen (FIN),1922-09-10,Helsinki,Finland
1923,2:40:47,Aksel Jensen (DEN),1923-06-16,Windsor,England
1924,2:36:10,Shizo Kanaguri (JPN),1924-04-12,Tokyo,Japan
...

Em seguida, podemos usar grep , sed , awk ou qualquer outra coisa para processar o arquivo. Por exemplo, usando awk :

$ cat list.csv | awk -F, '$3 !~ /[Dd]/ { print; }'
1921,2:47:29.8,Florestano Benedetti (ITA),1921-09-20,Bologna,Italy
1923,2:40:47,Aksel Jensen (DEN),1923-06-16,Windsor,England
1937,2:30:38,Manuel Dias (POR),1937-03-28,Lisbon,Portugal
1938,2:30:27.6,Pat Dengis (USA),1938-05-30,Salisbury,Massachusetts,USA
...

Isso imprime qualquer linha em que o nome (a terceira coluna, portanto, $3 ) não contenha D ou d . Veja as páginas awk , sed ou grep man para mais detalhes.

    
por Gsxr1k 06.12.2015 / 15:40
0

Grep

Grep, procura nos arquivos de entrada por linhas contendo uma correspondência para uma determinada lista de padrões.

Quando encontra uma correspondência em uma linha, ela copia a linha para a saída padrão por padrão, ou faz qualquer outro tipo de saída que você tenha solicitado com opções.

O grep pode ser simplesmente chamado:

grep <string> filename

O grep pode pesquisar padrões complicados para encontrar o que você precisa.

Aqui está uma lista de alguns dos caracteres especiais usados para criar uma expressão regular:

. The period . matches any single character.
? The preceding item is optional and will be matched at most once.
* The preceding item will be matched zero or more times.
+ The preceding item will be matched one or more times.   

Para mais detalhes, consulte: man grep

    
por kyodake 06.12.2015 / 15:04