Eu tenho dois arquivos de texto, F1a.txt
e F1b.txt
, com essencialmente os mesmos dados: o sobrenome do motorista e sua nacionalidade. Por exemplo:
Hamilton GBR
Alonso SPA
Eu concatenei esses dois arquivos em F1_drivers.txt
. Como faço o seguinte?
-
Usando pipes, exiba os drivers em F1a.txt
e F1b.txt
que são britânicos, classificados em ordem alfabética.
-
Envie uma longa lista de arquivos no diretório atual, gravados em um arquivo chamado listing
.
-
Mude para um novo diretório e anexe a longa lista de arquivos nesse diretório a listing
.
-
Grep para a string GER
em todos os arquivos que começam com F1
e terminam em .txt
.
-
Faça o # 4, mas canalize a saída para cat
para criar um arquivo contendo a saída, denominado grepout.txt
Recebi informações básicas para ajudar, mas não sei para onde ir.
-
cat F1a.txt F1b.txt | grep British | sort -d
Usamos cat para ler o conteúdo dos arquivos em um sistema * nix.
Em seguida, usamos um pipe, o caractere |, para alimentar a saída de cat em grep.
Em seguida, usamos o comando grep para pesquisar a entrada de cat pela palavra britânica, e o grep filtra a saída para mostrar as linhas apropriadas.
Em seguida, usamos outro pipe para alimentar a saída do grep em sort, que, como você provavelmente pode imaginar, classifica sua entrada. Usamos o argumento -d para classificá-lo em ordem alfabética.
-
ls -al > listing
Para fazer isso, precisamos usar o operador de redirecionamento de E / S do shell de '>'.
Quando você o usa, seguido por um arquivo, o que o BASH faz é o seguinte:
Leva o STDOUT ou saída padrão (linha de comando ou saída de ferramenta),
e se um arquivo existir com esse caminho, ele o sobrescreverá com os novos dados do STDOUT, caso contrário, ele cria o arquivo e grava os dados do STDOUT nele.
Tomamos ls, que nos fornece as informações do diretório de trabalho, e alimentamos o argumento -al, que essencialmente diz para ele exibir -allfiles no formato -longlisting.
Em seguida, usamos o > operador de redirecionamento para colocar a saída de ls no arquivo, listando.
-
cd a/directory/
e ls -al >> /path/to/listing
cd alterna diretórios. O que quero dizer com cd / directory / é escolher um diretório aleatório e usá-lo com o comando, não literalmente cd para um diretório /, a menos que seja o que você realmente queira fazer.
Em seguida, reutilizamos o comando ls anterior - lembre-se, -allfiles, -longformat - e usamos um comando de redirecionamento de shell diferente. Desta vez, usamos > & gt ;, que pega STDOUT e o acrescenta ao arquivo especificado depois, e o enviamos para a listagem de arquivos, onde quer que você os tenha criado.
-
cat F1*.txt | grep GER
Neste, estamos fazendo a mesma coisa que no número um - usando o cat para ler dados de seus arquivos e usando o grep para pesquisá-los. No entanto, estamos usando ainda outro novo operador shell, desta vez um asterisco, comumente referido como um curinga. O que o F1 * .txt diz ao shell para fazer é essencialmente isto:
No diretório atual, como não especificamos outro - veja todos os arquivos. Se eles começarem com F1, tenham alguma coisa depois e terminem com .txt, então retornem esse nome de arquivo. Quando fazemos isso, o cat recebe vários arquivos e faz seu trabalho - ele concatena o conteúdo dos arquivos especificados no STDOUT.
Em seguida, alimentamos todas as informações em STDOUT através do pipe em grep, como fizemos anteriormente, e informamos para procurar por GER.
-
%código%
O que podemos fazer, com isso, é dar ao gato a saída do grep como entrada, novamente, através de um pipe - e depois salvar a saída do gato, através do > operador como fizemos anteriormente - para acabar com toda a she-bang.
por
29.09.2014 / 20:23