Manipulando Arquivos de Texto - Linux

O comando tr é utilizada para converter ou remover caracteres de um arquivo. Um uso comum de tr é converter letras minúsculas em maiúsculas. Por exemplo, considere um arquivo de texto chamado test.txt no diretório home do usuário com as seguintes linhas:

tom
bob
sam
alice
kate

Todos os caracteres no arquivo estão em minúsculas. Vamos convertê-los para maiúsculas:

programicio@Programicio:~$ cat test.txt | tr a-z A-Z
TOM
BOB
SAM
ALICE
KATE

Como podemos ver, o comando tr é aplicado às linhas do arquivo test.txt, que são lidas pelo comando cat. Neste caso, o comando tr converte todos os caracteres do intervalo a-z para os caracteres correspondentes do intervalo A-Z.

O resultado convertido pode ser salvo em outro arquivo:

cat test.txt | tr a-z A-Z > test2.txt

Ordenando Linhas

Para ordenar as linhas de um arquivo, utilizamos o comando sort:

programicio@Programicio:~$ cat test.txt | sort
alice
bob
kate
sam
tom

De forma semelhante, podemos ordenar a saída de outros comandos, como a lista de arquivos e diretórios:

programicio@Programicio:~$ ls | sort
Desktop
Documents
Downloads
extensions
Music
Pictures
Public
shell
snap
Templates
Videos

Por padrão, o comando ordena as linhas em ordem lexicográfica. No entanto, ao lidar com números, essa ordenação pode não ser correta. Por exemplo, no arquivo test.txt com as seguintes linhas:

12
11
4
56
17

A ordenação padrão resulta em:

programicio@Programicio:~$ cat test.txt | sort
11
12
17
4
56

Para ordenar corretamente os números, usamos a opção -n:

programicio@Programicio:~$ cat test.txt | sort -n
4
11
12
17
56

Extraindo Informações com Comando cut

O comando cut permite extrair partes específicas de um arquivo estruturado. Isso é similar a trabalhar com tabelas, onde queremos obter dados de determinadas colunas. Este comando aceita várias opções, entre as quais destacamos:

  • -d: define o delimitador de dados na linha

  • -f: define a lista de números dos campos a serem exibidos. A lista de campos pode ser especificada em um dos seguintes formatos:

    • N: exibe o campo de número N (a numeração começa em 1)

    • N-: define um intervalo de campos que começa no número N e termina no último campo

    • N-M: define um intervalo de campos de N a M

    • -M: define um intervalo de campos que começa no primeiro campo e termina no campo de número M

Suponha que temos o seguinte arquivo test.txt no diretório home:

Tom:39:Microsoft
Bob:43:Google
Sam:28:Jetbrains
Alice:34:Oracle
Kate:25:Google

Cada linha contém dados do usuário: nome, idade e empresa, separados por dois-pontos. Para obter os nomes dos usuários:

programicio@Programicio:~$ cut -d : -f 1 test.txt
Tom
Bob
Sam
Alice
Kate

Aqui, a opção -d indica que o delimitador é o dois-pontos, e a opção -f especifica que queremos o primeiro campo.

Para exibir o primeiro e o terceiro campos:

programicio@Programicio:~$ cut -d : -f 1,3 test.txt
Tom:Microsoft
Bob:Google
Sam:Jetbrains
Alice:Oracle
Kate:Google

Ou do primeiro ao segundo campo:

programicio@Programicio:~$ cut -d : -f 1-2 test.txt
Tom:39
Bob:43
Sam:28
Alice:34
Kate:25

Também podemos aplicar cadeias de transformações. Por exemplo, para exibir os três primeiros nomes, ordenados em ordem crescente:

programicio@Programicio:~$ cat test.txt | cut -d : -f 1 | sort | head -3
Alice
Bob
Kate
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com