SISTEMAS OPERATIVOS I

Documentos relacionados
SISTEMAS OPERATIVOS I

Licenciatura em Engenharia Informática Departamento de Engenharia Informática Instituto Superior de Engenharia do Porto

SISTEMAS OPERATIVOS I

SISTEMAS OPERATIVOS I

Estácio-FIC Graduação em Redes de Computadores

Este documento não é de forma alguma exaustivo, nem pretende ser um manual, apenas uma referência aos pontos nele abordados.

Script. Baltazar Tavares (Psycho Mantys)

Introdução aos Sistemas Informáticos

CEFET SC UNIDADE DE SÃO JOSÉ CURSO TÉCNICO EM TELECOMUNICAÇÕES REDES DE COMPUTADORES/TELEFONIA DISCIPLINA DE SISTEMAS OPERACIONAIS

CEFAPA Aplicação Informática

Interpretadores de comandos. Interpretadores de comandos de login válidos. Caracteres especiais. José Pedro Oliveira

Recursos B-on CURRENT CONTENTS. Saber usar. Novembro,2008

Teste do Programa Writer do OpenOffice

Listagens de ficheiros e directorias

Programação. Folha Prática 1. Lab. 1. Departamento de Informática Universidade da Beira Interior Portugal Copyright Ó 2000 All rights reserved.

Ficheiros de texto 1. Ficheiros de texto. 1. Implementar um programa que leia uma frase do teclado e a escreva num ficheiro.

Manipulação de directorias

Sistemas Operativos Guião da 1 a aula prática

Sistemas Operacionais e Introdução à Programação. Redirecionamentos Editor vi

Comandos. Sistema Operacional GNU/Linux. Para Manipulação de Contas

Familiarização com a ferramenta JavaCC

Aula 07. Redirecionamento de conteúdo. Agendamento de Tarefas

ZS Rest. Manual Avançado. Início v.1. v2011

Linguagem C Entrada/Saída (console)

1.2 Organização de directórios e ficheiros A linha de comandos

Laboratório de Informática Avançada Automatização de Horários Manual do Professor

SISTEMAS OPERATIVOS I

SISTEMAS OPERATIVOS I

Sumário. Ficheiros. Ficheiros

Programação Shell Script: como dominar seu terminal

1 - Ambiente de desenvolvimento

Um programa awk contém uma seqüência de padrões (expressões regulares) e ações da seguinte forma:

Mestrado em Engenharia Física Tecnológica

Introdução aos Sistemas Informáticos. Engenharia Informática, Engenharia Mecânica, Engenharia Química, Gestão e Engenharia Industrial

Manual do Cibernauta

Ferramentas Web, Web 2.0 e Software Livre em EVT

C/C++; biblioteca stdio

AMBIENTE DE PROGRAMAÇÃO PYTHON II

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Campo de coluna: é um campo retirado da lista de dados e atribuído a uma orientação de coluna na tabela dinâmica.

SISTEMAS OPERATIVOS I

Curso de Formação LPIC-1 Exame 101

Funções de Entrada e Saída

Manual Prático. Elisabete Aguiar

>>> conta_vogais( testevogais.txt ) { a : 36, u : 19, e : 45, i : 16, o : 28}

Este documento não é de forma alguma exaustivo, nem pretende ser um manual, apenas uma referência aos pontos nele abordados.

Introdução a shell scripts

Departamento de Engenharia Informática. Sistemas Operativos 1. Utilitário Make

Gmail: Elimine s antigos e pesados via pesquisa avançada

Abortar a execução dum programa

Mais 5 dicas para melhorar ainda mais o seu Windows 10

Linux - comando essenciais

Sistemas de Gestão De Bases de Dados. Criação de Tabelas na vista estrutura. Módulo 2. A Professora: Vanda Pereira

Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre

Comandos. Sistema Operacional GNU/Linux. Para Manipulação de Diretórios

ADMINISTRAÇÃO DE SISTEMAS UNIX Aula Prática 01 Sistemas Operacionais Gil Eduardo de Andrade

SISTEMAS OPERATIVOS I

Estácio-FIC Graduação em Redes de Computadores

Comunicação baseada em canais de I/O e Pipelines no sistema Unix. José C. Cunha, DI-FCT/UNL

Permite também conjugar vários comandos para executar determinadas tarefas. Vamos mostrar alguns exemplos concretos da utilização do comando find.

Introduzir ao formando sobre as funcionalidades básicas de um PC (Personal Computer) do Windows 7.

Entendendo e usando permissões no Linux. Orientador de Curso: Rodrigo Caetano Filgueira

Unnamed Pipes. Chamada ao sistema pipe. Pipes. Comunicação entre processos. Unnamed Pipes Chamada so sistema. José Pedro Oliveira

Aula de Linux Modo Texto

Como gerar uma amostra aleatória simples com o Microsoft Excel

Exercícios: Arquivos

Gestão de ficheiros e directórios

Concepção e Fabrico Assistido por Computador

Python Listas e Strings. Listas 23/11/2016. Por que usar listas? Listas. Listas - Solução. Listas - Problema

UFCD 786 Instalação e configuração de sistemas de bases de dados

Python: Entrada e Saída. Claudio Esperança

Objectivos. Programação I (2010/2011) 2 o Trabalho de Programação

Manipulando a base de dados

Sistemas Operacionais. Prof. MSc André Y. Kusumoto

EXERCÍCIOS PARA O UNIX BÁSICO. 1. Cada um dos usuários possui uma área de trabalho no Unix. Escreva no quadro abaixo o seu username.

Operador ~, Função match Funções sub, gensub Função split. Variável IGNORECASE Função gsub, modificador g

Mestrado em Gestão de Informação Computadores e Redes de Comunicação, 2004/07

5 a Aula - Funções de Intervalo (II). Ciclo for. Leitura e Escrita em Ficheiros. Mestrado em Engenharia Física Tecnológica

Modulo 2 Gestão de Base

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Estácio-FIC Graduação em Redes de Computadores

Aula 5 e 6: Introdução ao shell

Sistema de cópias de segurança

Engenharia da Programação 2003/2004

Preparatório LPIC-101

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

Curso de extensão em Administração de redes com GNU/Linux

modificador h instrui a função printf( ) a exibir um short int. Portanto, %hu indica que o dado é do tipo short unsigned int.

Programação. Folha Prática 10. Lab. 10. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.

Manipulação de Strings

Programação 2017/2018 2º Semestre

AVALIAÇÃO PESSOAL DOCENTE Guia de referência para docentes em processo de avaliação do desempenho

Journal Citation Reports

PROGRAMAÇÃO I - Folha prática 1

Escola Secundária Ferreira Dias Agualva - Sintra. Atividade 20

1/24 FICHEIROS DE TEXTO

Pasta de Dados, Companhias e Trabalhos

Conceito de programação

Transcrição:

Instituto Superior de Engenharia do Porto Departamento de Engenharia Informática SISTEMAS OPERATIVOS I Textos de Apoio às Aulas Práticas Metacaracteres e expressões regulares 2004 Jorge Pinto Leite Sugestões e participações de erros para jpl@dei.isep.ipp.pt

ISEP Metacaracteres e expressões regulares Índice Introdução...1 Os metacaracteres...1 O metacaracter asterisco (*)...1 O metacaracter interrogação (?)...2 O metacaracter parêntesis recto ([ ])...2 O metacaracter chavetas ({ })...3 Outros tipos de metacaracteres...3 Sinal de menor (<)...3 Sinal de maior (>)...4 Duplo sinal de maior (>>)...4 Tratamento do stderr...4 O pipe ( )...4 O comando tee...5 Questões...5 Jorge Pinto Leite i

ISEP Manipulação de ficheiros Introdução Há por vezes necessidade de endereçar um conjunto de ficheiros que satisfazem um determinado padrão. Vamos supor que o conteúdo de um determinado directório é constituído pelos ficheiros seguintes: $ ls lista11 lista12 lista21 lista212 lista22 lista31 lista32 lista41 lista42 relatório1 relatório2 relatório3 relatório3.old tipoa tipob tipoc tipod velho1 velho2 velho3 Exemplo 1 Podemos ter necessidade de obter apenas um sub-conjunto dos ficheiros relativos a um padrão determinado por exemplo podemos querer apenas o conjunto dos ficheiros relativos a relatórios. Para conseguirmos cumprir este pressuposto necessitamos de tirar partido dos metacaracteres (wildcard) disponíveis neste sistema operativo. Os metacaracteres Há três tipos de metacaracteres em Linux: o asterisco (*), a interrogação (?) e os operadores SET que se dividem em parêntesis rectos e chavetas. A interrogação permite um caracter qualquer na posição em que está inserida. O asterisco permite qualquer conjunto (string) de caracteres. Uma das diferenças fundamentais do Linux perante outros sistemas operativos é que um metacaracter pode ser introduzido em qualquer posição do padrão que queremos procurar. O metacaracter asterisco (*) Vejamos o exemplo 1 atrás descrito. Se quisermos obter a listagem apenas do conjunto de ficheiros correspondentes a relatórios podemos incluir no comando ls este padrão seguido do metacaracter asterisco, como se ilustra no exemplo 2. $ ls relatório* relatório1 relatório2 relatório3 relatório3.old Exemplo 2 O sistema operativo devolveu o conjunto de ficheiros que começam por relatório e contêm depois um qualquer conjunto de caracteres. Mas se o nosso objectivo for obter a lista de todos os documentos que terminam em 3, podemos alterar o formato do comando instruindo-o para procurar os ficheiros que começam por qualquer string e terminam com este caracter: $ ls *3 relatório3 velho3 Exemplo 3 Como o asterisco representa qualquer conjunto de caracteres, podemos tornar a nossa pesquisa mais específica para as nossas necessidades. Vamos supor que pretendíamos obter a lista das versões antigas de relatórios (assumindo que as versões antigas tiveram Jorge Pinto Leite Página 1 de 5

ISEP Manipulação de ficheiros o seu nome alterado para terminarem em.old). Podemos então procurar especificamente este padrão: $ ls relatório*old relatório3.old O metacaracter interrogação (?) Exemplo 4 Como já referido o metacaracter interrogação representa um só qualquer caracter na posição em que foi introduzido. Através deste metacaracter podemos pesquisar no nosso directório o conjunto de ficheiros cuja designação comece por lista seguido de um qualquer caracter, terminando em 2: $ ls lista?2 lista12 lista22 lista32 lista42 Exemplo 5 Uma vez que o metacaracter? representa um e um só caracter, não foi obtida nesta relação o ficheiro lista212. Se quisermos obter o conjunto dos ficheiros cuja designação se inicie por tipo e termine num qualquer caracter, basta-nos introduzir este padrão no nosso comando: $ ls tipo? tipoa tipob tipoc tipod Exemplo 6 O metacaracter parêntesis recto ([ ]) Enquanto que os metacaracteres já descritos apresentam um comportamento similar ao de outros sistemas operativos, em Linux os parêntesis rectos têm um âmbito completamente diferente. Representa uma e uma só ocorrência de qualquer dos caracteres nele incluídos. Ainda em relação ao exemplo 1 que nos tem servido de base vamos considerar que pretendemos obter a relação dos ficheiros cuja designação comece por velho e termine em 1, 2 ou 3. $ ls velho[123] velho1 velho2 velho3 Exemplo 7 Dadas as funcionalidades deste metacaracter, o mesmo resultado seria obtido se indicássemos o intervalo de caracteres pretendido entre parêntesis. Esta forma de indicação é conseguida separando os limites pelo travessão. $ ls velho[1-3] velho1 velho2 velho3 Exemplo 8 Conjugando este metacaracter com os anteriores, é fácil concluir que podemos obter uma relação de todos os ficheiros que incluam em qualquer posição os caracteres 1, 2 ou 3: Jorge Pinto Leite Página 2 de 5

ISEP Manipulação de ficheiros $ ls *[1-3]* lista11 lista12 lista21 lista212 lista22 lista31 lista32 lista41 lista42 relatório1 relatório2 relatório3 relatório3.old velho1 velho2 velho3 Exemplo 9 Uma outra funcionalidade importante deste metacaracter permite-nos negar o seu conteúdo, precedendo o conjunto indicado do símbolo de negação!. $ ls relatório[!12] relatório3 O metacaracter chavetas ({ }) Exemplo 10 Este metacaracter é similar ao anterior, diferindo por permitir não um conjunto de possibilidades para um único caracter mas um conjunto de possibilidades para vários conjuntos de caracteres, sendo cada conjunto separado dos restantes por uma vírgula. $ ls lista{11,21,31} lista11 lista21 lista31 Exemplo 11 Outros tipos de metacaracteres Um aspecto importante a ter sempre em mente quando se trabalha em ambiente Linux (ou Unix, de uma forma mais geral) é que qualquer periférico é representado como um ficheiro. Todos os comandos estão desenvolvidos para trabalhar com três ficheiros standard especiais, o standard input (stdin), o standard output (stdout)e o standard error (stderr). Estes ficheiros especiais podem ser representados por números, pela ordem indicada e começando em 0 (zero), ou seja, o stdin pode ser representado pelo número zero (0), o stdout pelo número um (1) e o stderr pelo número dois (2). Por defeito estes ficheiros especiais estão redireccionados para o teclado (stdin) e para o monitor (stdout e stderr). Podemos contudo em caso de necessidade redireccioná-los para outros ficheiros através de um conjunto especial de caracteres. Sinal de menor (<) Com este sinal podemos redireccionar a entrada de informação para um outro ficheiro qualquer. Deverá ser colocado o comando pretendido seguido do sinal de menor e em seguida o nome do ficheiro que contem a informação a fornecer ao comando. Jorge Pinto Leite Página 3 de 5

ISEP Manipulação de ficheiros $ ls < lista lista11 lista12 lista21 lista212 lista22 lista31 lista32 lista41 lista42 Exemplo 12 Como se conclui pelo exemplo 12 o ficheiro lista continha uma linha com lista*. Sinal de maior (>) Com este sinal podemos redireccionar a saída de informação para um outro ficheiro. Deverá ser colocado o comando pretendido seguido do sinal de maior e em seguida o nome do ficheiro onde pretendemos escrever a informação resultante do comando. $ ls > lista $ ls lista lista11 lista12 lista21 lista212 lista22 lista31 lista32 lista41 lista42 relatório1 relatório2 relatório3 relatório3.old tipoa tipob tipoc tipod velho1 velho2 velho3 Exemplo 13 Duplo sinal de maior (>>) Com este sinal o funcionamento é praticamente igual ao anterior. A diferença reside em que com o duplo sinal de maior caso o ficheiro de saída já exista o seu conteúdo é acrescido do resultado do comando. Tratamento do stderr O stderr pode também ser redireccionado para um qualquer ficheiro ou dispositivo (que como já referido é sempre representado como um ficheiro) através dos sinais. O seu tratamento contudo depende da versão da shell utilizada: Bash e Kourne shell: 2> (ou 2>>) C shell: > & (ou >>&) O pipe ( ) O pipe, representado pela barra vertical, permite redireccionar numa única operação o stdout para um outro comando. Em relação ao conteúdo de directório do exemplo 1 e assumindo que pretendíamos saber quantos ficheiros estão presentes, podemos redireccionar a saída do comando ls l para o comando wc l: $ ls l wc l 21 $ Exemplo 14 Podem-se encadear vários comandos com pipes, obtendo-se o que normalmente se designa por pipeline. É necessário contudo ter em atenção que alguns comandos só Jorge Pinto Leite Página 4 de 5

ISEP Manipulação de ficheiros podem surgir no início de uma pipeline por apenas gerarem informação e não necessitarem de informação do utilizador (por exemplo, date, ls) assim como outros apenas podem surgir no fim por apenas receberem informação mas não gerar informação para o monitor (por exemplo, lp, write). Designam-se por filtros os comandos que tanto geram informação para o monitor como solicitam informação ao utilizador. Os filtros podem surgir em qualquer parte de um pipeline, recebendo informação do utilizador, processando-a, e gerando uma saída para o monitor. O comando tee Este comando especial foi desenvolvido para ser utilizado em pipelines. A sua sintaxe é tee [opção]... [ficheiro]... Ele gera um ou mais ficheiros com a informação que recebe e reenvia essa informação para o comando seguinte da pipeline. $ ls l lista1* tee lista wc l 2 $ cat lista lista11 lista12 Exemplo 15 Questões 1. Qual o resultado do comando rm * 2. Qual o resultado do comando rm*. 3. Qual o resultado do comando rm *a* 4. Qual o resultado do comando rm? 5. Qual o resultado do comando rm?. 6. Qual o resultado do comando ls?a? 7. Se tiver no seu working directory os ficheiros teste11, teste12, teste21, teste22, teste31 e teste32 como consegue efectuar numa só operação a eliminação dos ficheiros que terminam em 1 (um). Jorge Pinto Leite Página 5 de 5

Licenciatura em Engenharia Informática Departamento de Engenharia Informática Instituto Superior de Engenharia do Porto Manipulação de Ficheiros de Texto Sandra Manuela Lemos Machado Versão 2 Março 2002 Criticas e sugestões: smachado@dei.isep.ipp.pt

Sistemas Operativos 1 Manipulação de Ficheiros de Texto Este documento pretende constituir um guia de trabalho para as aulas de Sistemas Operativos 1, introduzindo utilitários que permitem a manipulação de ficheiros de texto ASCII no sistema operativo Unix. Não pretende ser um manual dos comandos apresentados, por isso se quiser realmente saber como os utilitários funcionam use o manual do Unix (man comando). 1 CONTAGEM DE LINHAS NUM FICHEIRO DE TEXTO WC (Word Count) é o utilitário Unix que permite a contagem de linhas, palavras e caracteres num ficheiro de texto. 1.1 Sintaxe wc [ -cwl ] nome_dos_ficheiros 1.2 Exercícios 1) Experimente as três opções do comando wc do seguinte modo: a) Conte apenas as palavras do ficheiro passwd (-w); b) Conte apenas os caracteres do ficheiro passwd (-c); c) Conte apenas as linhas do ficheiro passwd (-l). 2) Crie uma sequência de comandos que mostre apenas o número de utilizadores presentes no sistema. 3) Crie uma sequência de comandos que mostre o número de ficheiros e directórios da sua directoria HOME. 2 SUBSTITUIR CARACTERES NUM FICHEIRO DE TEXTO O comando tr (translate) na sua forma mais simples permite substituir os caracteres especificados na string_input pelos especificados na string_output. O comando tr e um filtro, lê o standard input (teclado) e devolve a saída para o standard output (monitor). O standard input pode ser redireccionado para um ficheiro (<) ou fornecido por um pipe ( ). O standard output também pode ser redireccionado (>), embora no Unix não seja permitido usar o mesmo ficheiro como entrada e saída de um comando, pode-se contornar esta limitação recorrendo a um ficheiro temporário. Com a opção -d, os caracteres não são substituídos, mas removidos. A opção -s remove os caracteres que se repetem, torna-se muitas vezes útil para remover os duplos espaços, triplos, etc., mantendo apenas um espaço. 2.1 Sintaxe tr [-cds] [string_input] [string_output] Página 2 de 5

Sistemas Operativos 1 Manipulação de Ficheiros de Texto 2.2 Exercícios 1) Substitua todas as letras minúsculas de um ficheiro de texto por maiúsculas. Verifique novamente o seu conteúdo. 2) Use a linha de comandos que da alínea anterior, mas altere-a de modo a que as alterações provocadas pelo comando tr fiquem guardadas no ficheiro. 3) Verifique as opções -d e -s do seguinte modo: a) Apague todas as vogais do ficheiro usado acima. b) Crie um ficheiro chamado listagem com a listagem longa da sua HOME. Retire ao ficheiro todos os espaços que não sejam simples (duplos espaços, triplos, etc.) 4) Crie uma linha de comandos que substitua todos os caracteres "\"para "*" e os "," para "-" no ficheiro /etc/group. 5) Crie uma sequência de comandos que mostre quantos níveis abaixo da directoria root está localizado o seu directório corrente. 3 EXTRAIR COLUNAS DE UM FICHEIRO DE TEXTO O comando cut permite visualizar ficheiros como matrizes com linhas e colunas e permite extrair as colunas especificadas. O comando cut pode analisar o ficheiro de duas formas: os ficheiros podem ser constituídos por colunas separadas por determinado caracter (por defeito espaço, mas é configurável através da opção -d). Para extrair colunas a este tipo de ficheiros tabulares usa-se -f seguido de uma lista de colunas a extrair (por exemplo -f1,4,3). A opção -s obriga o comando cut a suprimir linhas do ficheiro que não contenham o caracter delimitador. A opção -c permite cortar um conjunto de caracteres especificando, para isso, a sua posição na linha, por exemplo cut -c1, corta apenas o primeiro caracter de cada linha. 3.1 Sintaxe cut -flista [-dchar] [-s] [ficheiro] cut -clista [ficheiro] 3.2 Exercícios: 1) Explique como extrair as colunas 21 a 43 do ficheiro /users/1/bach/so1/fortunes.txt; 2) Explique como extrair as colunas 1 a 3 do ficheiro listagem criado anteriormente; Página 3 de 5

Sistemas Operativos 1 Manipulação de Ficheiros de Texto 3) Crie um ficheiro nomes com todos os nomes dos ficheiros presentes no ficheiro listagem; 4) Crie uma sequência de comandos que liste todos os ficheiros do directório /usr/bin juntamente com o seu ultimo tempo de acesso. Guarde essa lista num ficheiro com o mesmo nome na sua HOME, num formato de 3 colunas (nome do ficheiro, dia e mês). 5) Construa uma lista com todos os utilizadores do sistema, a sua directoria e a sua shell, separe cada um dos itens com um espaço e mostre o resultado num ecrã de cada vez. 6) Conte o número de linhas de um ficheiro de texto que comecem por maiúsculas. 4 COLAR FICHEIROS Muitas vezes existe a necessidade de cortar várias colunas a um ficheiro para depois as voltar a colar noutro com numa ordem diferente. O utilitário Unix paste lê um ou mais ficheiros e cola as colunas correspondentes pela ordem pretendida. Por defeito as colunas são separadas por espaço, mas podem ser separadas por qualquer caracter especificado com a opção -d, esta opção permite a utilização de uma lista de caracteres, sendo que eles são usados ciclicamente (1º, 2º, 3º, 1º, 2º,...). A opção -s permite juntar informação de vários ficheiros numa linha e não em colunas. O comando paste não é um filtro, é necessário indicar na linha de comandos os ficheiros a usar, porque o utilitário não lê o standard input. Se em alguma situação houver a necessidade de usar o paste como filtro, deve escrever-se um hífen (-) na linha de comandos em vez do nome dos ficheiros (who cut -f1 -d" " paste -s -). 4.1 Sintaxe paste [-s] [-dlista] [ficheiros] 4.2 Exercícios 1) Crie um ficheiro, chamado nomes, com apenas o nome dos ficheiros retirado do ficheiro listagem. Crie um ficheiro, chamado permissões, com as permissões associadas a cada ficheiro listado. Crie um ficheiro chamado nomes+perm que contenha apenas duas colunas, a primeira com os nomes dos ficheiros e a segunda com as permissões; 5 JUNTAR FICHEIROS DE TEXTO COM CAMPOS EM COMUM O comando Unix join permite juntar dois ficheiros de texto com pelo menos um campo em comum. A coluna comum chama-se referência. Para juntar os dois ficheiros com o utilitário join a referência tem de estar ordenada por ordem alfabética. Este utilitário não é um filtro, mas pode ser usado numa pipeline, substituindo o primeiro ficheiro por um hífen, como no comando paste. Quando usado sem opções o join junta os ficheiros pela primeira coluna, sempre que o campo referência não fôr o primeiro, deve usar-se a opção -j. Para exemplificar veja-se a seguinte linha de comandos: join -j1 4 -j2 3 exemplo1 exemplo2. Página 4 de 5

Sistemas Operativos 1 Manipulação de Ficheiros de Texto Neste caso junta os ficheiros exemplo1 e exemplo2 pelo campo 4 do exemplo1 e pelo campo 3 do exemplo2. Por defeito os dois ficheiros são juntos pelo campo referência, se alguma linha do ficheiro não contiver o respectivo campo, não é exibido no resultado. Sempre que isto consista numa limitação para o utilizador, pode usar a opção -a, seguida de 1 (-a1) para o caso de querer na saída os campos que não juntou no primeiro ficheiro e analogamente para o ficheiro dois a opção -a2. O caracter delimitador também pode ser configurado usando o -t seguido de um caracter (-t * ). Nem sempre é necessário apresentar todos os campos dos ficheiros a juntar, a opção -o permite escolher os campos a juntar, mas não mostra o campo referência, a não ser que seja explicitamente especificado na linha. Por exemplo: join -o 1.3 1.4 2.2 2.3 2.5 exemplo1 exemplo2 Neste exemplo o resultado conterá as colunas 3 e 4 do exemplo1 e as colunas 2,3,5 do exemplo2, o campo referência é o primeiro, visto que nada foi especificado. Outra opção que pode ser útil quando se usa o comando join é -e, seguida de uma string que será exibida na saída sempre que existam campos em branco resultantes, por exemplo se na opção -o especificarmos uma coluna que não exista. 5.1 Sintaxe join [-a1 -a2] [-o lista] [-j1 no -j2 no] [-tchar] [-e string] file1 file2 5.2 Exercícios 1) Considere os ficheiros abaixo: turmas horario Pedro A 3ª A Pedro Nuno B 4ª B Nuno Patricia B 4ª B Patricia Ricardo F 5ª F Ricardo Luis F 5ª F Luis c) Escreva uma linha de comandos que junte as colunas 1,2 do ficheiro turmas com as colunas 1 e 2 do ficheiro horário, separe as colunas com o caracter : ; d) Os ficheiros acima podem ser juntos por outra coluna que não a primeira, qual? Que alteração seria preciso fazer nos ficheiros? Página 5 de 5