Como posso extrair dados do arquivo UNIX?

1

Eu sou iniciante

Eu gostaria de extrair dados, que o arquivo começa com "START OF TEC MAP" e termina com "END OF TEC MAP", do arquivo. Como posso obter esse intervalo específico? Quais comandos devo usar?

Arquivo: codg0010.17i.Z

    
por S.YAZICI 20.05.2018 / 16:16

1 resposta

5

Abra o terminal e digite:

uncompress -c codg0010.17i.Z | sed -n '/START OF TEC MAP/,/END OF TEC MAP/p' 

Para enviar os resultados para um arquivo de saída, digite:

uncompress -c codg0010.17i.Z | sed -n '/START OF TEC MAP/,/END OF TEC MAP/p' >> output.txt

A opção -i de sed é usada para editar arquivos no lugar. Para extrair o arquivo do arquivo e editá-lo em vez de gravar a saída em output.txt:

uncompress codg0010.17i.Z # This archive has only 1 file in it named codg0010.17i. 
sed -ni '/START OF TEC MAP/,/END OF TEC MAP/p' codg0010.17i

Isto imprime todo o texto entre START OF TEC MAP e END OF TEC MAP , entretanto este arquivo não contém os dados de apenas um TEC MAP, mas os dados de 25 diferentes MAPs TEC organizados sequencialmente e o comando acima imprime os dados de todos os 25 mapas juntos.

Explicação

A parte sed do comando tem o seguinte formato:

sed -n '/WORD1/,/WORD2/p' /path/to/file
  • WORD1 é a string inicial ( START OF TEC MAP )
  • WORD2 é a sequência final ( END OF TEC MAP )
  • p é um comando sed para imprimir linhas específicas, neste caso todas as linhas incluindo e entre START OF TEC MAP e END OF TEC MAP
  • /path/to/file é o caminho para o arquivo ou simplesmente seu nome, se o diretório atual for o mesmo que o diretório que contém o arquivo.
por karel 20.05.2018 / 16:48