- Gerar link
- Outros aplicativos
Postagem em destaque
- Gerar link
- Outros aplicativos
Sobre
Classificando linhas de arquivos de texto
Descrição
Escrever concatenação ordenada de todos os ARQUIVO(s) para saída padrão.
Para mais informações consulte o manual: sort(1)
Uso
Para os exemplos a seguir, criei o arquivo chamado frutas.txt com o seguinte conteúdo:
Seu conteúdo é constituído por itens separados em três colunas, compostas por: quantidade, nome e mês de vencimento da fruta (um por linha).
Exemplos
1. Ordenando as linhas do arquivo. (modo string)
Apesar dos primeiros caracteres de cada linha serem constituídas de números; Por padrão a utilização do comando 'sort' sem parâmetros realiza uma verificação em modo 'string', não considerando a distinção entre números e letras.
2. Ordenando os itens por quantidade.
Ao utilizar o parâmetro '-n' forçamos a ordenação numérica dos itens e assim colocando-os em uma ordem crescente.
Nota:
Classificando numericamente, onde o número começa em cada linha e consiste em espaços em branco opcionais, um sinal '-' opcional e zero ou mais dígitos, possivelmente separados por milhares de separadores, opcionalmente seguido por um caractere decimal, zero ou mais dígitos. Um número vazio é tratado como '0'.
A comparação é exata; Não há erro de arredondamento.
O sinal '+' ou nenhuma notação exponencial são reconhecidas. Para comparar essas sequências numericamente, use o '--general-numeric-sort' ou '-g.
3. Classificando os itens em ordem alfabética.
Determinando o delimitador entre os campos com o parâmetro '-t' e com o '-k N', definimos em qual coluna será aplicada a ordenação. Note que os nomes das frutas estão agrupados em ordem alfabética.
Nota:
Usando o SEPARADOR de caractere como separador de campo ao encontrar a CHAVE de classificação em cada linha. Por padrão, os campos são separados por um caractere em branco. Onde o '-k N', define qual N campo será classificado.
Data a linha de entrada '6 abacate JAN', o comando divide os campos como '6', 'abacate' e 'JAN'. O separador de campo não é considerado como parte do campo anterior ou do campo a seguir, de modo com 'sort -t' ""' a mesma linha de entrada tem quatro campos: um campo vazio, '6', 'abacate' e 'JAN'. No entando, os campos que se estendem a linha, como '-k 2', ou campos consistindo de um intervalo, como '-k 2,3'., retem os separadores de campo presentes entre os pontos de alcance.
Para especificar ASCII NUL como o separador de campo, use os dois caracteres:
String '\0', por exemplo: 'sort -t "\0"'
4. Classificando as frutas por mês de vencimento.
Utilizando o parâmetro '-M' para especificar uma classificação mensal sob o terceiro campo de cada item, tendo como resultado uma ordenação mensal crescente.
Nota:
Uma cadeia inicial, consistindo em qualquer quantidade de espaços em branco, seguida por uma abreviatura de nomes de mês, é convertido para maiúsculo e comparado na seguinte ordem: JAN, FEV, ..., DEZ. Nomes inválidos comparam baixa para nomes válidos. A categoria de localidade 'LC_TIME' determina o mês na grafia padrão, um espaço em branco é um espaço ou uma guia, mas a localidade em 'LC_CTYPE' pode alterar isso.
5. Revertendo a ordem de classificação.
Foi realizada uma classificação numérica nos itens da lista, onde o parâmetro '-r' especifica que deverá ser exibida na sua ordem reversa.
Nota:
Utilizar o parâmetro '--reverse' ou '-r' faz com que os dados da saída padrão sejam classificados na sua ordem reversa preferivelmente.
6. Classificando o sistema de arquivos por tamanho. (ordem decrescente)
Usando o comando 'df' para listar os sistemas de arquivos disponíveis, removendo apenas a primeira linha contendo o cabeçalho das colunas. O comando sort com o parâmetro '-h' classifica a notação base de armazenamento contidas na segunda coluna; Onde são expressadas a capacidade total de cada ponto de montagem, onde são organizadas em capacidade decrescente.
Nota:
Classifica numericamente primeiro pelo sinal numérico (negativo, zero ou positivo); Então pelo sufixo SI (vazio, ou 'k' ou 'K', ou qualquer de 'MGTPEZY", nessa ordem); E finalmente pelo valor numérico.Por exemplo, '1023M' classifica antes de '1G' porque 'M' (mega) precede 'G' (giga) como um sufixo SI. Esta opção classifica os valores que são consistentemente escalados para o sufixo mais próximo, independentemente de os sufixos indicarem poderes de 1000 ou 1024 e, portanto, classifica a saída de qualquer invocação dos comandos 'df', 'du' ou 'ls' que são invocados com suas opções '--human-readable' ou '-si'. A sintaxe para números é a mesma que para a opção '--numeric-sort'; O sufixo SI deve seguir imediatamente o número. Observe também o comando 'numfmt', que pode ser usado para reformatar os números para o formato humano do tipo _after_, permitindo assim que o sort funcione com números mais precisos.
Para o próximo exemplo criei um arquivo chamado ip.txt com o seguinte conteúdo:
Estão armazenados inúmeros ranges de IP's, divididos em 3 VLAN's. São elas: 192, 172 e 10.
7. Listando em ordem crescente o último octeto de cada VLAN.
Especificando o delimitador '.' (ponto) que separa os campos de cada octeto do cabeçalho IP, onde é classificado em ordem numérica o quarto octeto e listar em ordem crescente as faixas de cada VLAN.
Classificando linhas de arquivos de texto
Descrição
Escrever concatenação ordenada de todos os ARQUIVO(s) para saída padrão.
Para mais informações consulte o manual: sort(1)
Uso
sort [OPÇÃO]... [ARQUIVO]...
sort [OPÇÃO]... --files0-from=A
Para os exemplos a seguir, criei o arquivo chamado frutas.txt com o seguinte conteúdo:
SHAMAN@shellscriptx:~$ cat frutas.txt
6 abacate JAN
1 uva FEV
2 abacaxi MAR
9 limão ABR
7 melancia JUN
5 pêssego JUL
4 morango AGO
10 banana SET
3 amora OUT
8 laranja DEZ
Seu conteúdo é constituído por itens separados em três colunas, compostas por: quantidade, nome e mês de vencimento da fruta (um por linha).
Exemplos
1. Ordenando as linhas do arquivo. (modo string)
SHAMAN@shellscriptx:~$ sort frutas.txt
10 banana SET
1 uva FEV
2 abacaxi MAR
3 amora OUT
4 morango AGO
5 pêssego JUL
6 abacate JAN
7 melancia JUN
8 laranja DEZ
9 limão ABR
2. Ordenando os itens por quantidade.
SHAMAN@shellscriptx:~$ sort -n frutas.txt
1 uva FEV
2 abacaxi MAR
3 amora OUT
4 morango AGO
5 pêssego JUL
6 abacate JAN
7 melancia JUN
8 laranja DEZ
9 limão ABR
10 banana SET
Nota:
Classificando numericamente, onde o número começa em cada linha e consiste em espaços em branco opcionais, um sinal '-' opcional e zero ou mais dígitos, possivelmente separados por milhares de separadores, opcionalmente seguido por um caractere decimal, zero ou mais dígitos. Um número vazio é tratado como '0'.
A comparação é exata; Não há erro de arredondamento.
O sinal '+' ou nenhuma notação exponencial são reconhecidas. Para comparar essas sequências numericamente, use o '--general-numeric-sort' ou '-g.
3. Classificando os itens em ordem alfabética.
SHAMAN@shellscriptx:~$ sort -t' ' -k2 frutas.txt
6 abacate JAN
2 abacaxi MAR
3 amora OUT
10 banana SET
8 laranja DEZ
9 limão ABR
7 melancia JUN
4 morango AGO
5 pêssego JUL
1 uva FEV
Nota:
Usando o SEPARADOR de caractere como separador de campo ao encontrar a CHAVE de classificação em cada linha. Por padrão, os campos são separados por um caractere em branco. Onde o '-k N', define qual N campo será classificado.
Data a linha de entrada '6 abacate JAN', o comando divide os campos como '6', 'abacate' e 'JAN'. O separador de campo não é considerado como parte do campo anterior ou do campo a seguir, de modo com 'sort -t' ""' a mesma linha de entrada tem quatro campos: um campo vazio, '6', 'abacate' e 'JAN'. No entando, os campos que se estendem a linha, como '-k 2', ou campos consistindo de um intervalo, como '-k 2,3'., retem os separadores de campo presentes entre os pontos de alcance.
Para especificar ASCII NUL como o separador de campo, use os dois caracteres:
String '\0', por exemplo: 'sort -t "\0"'
4. Classificando as frutas por mês de vencimento.
SHAMAN@shellscriptx:~$ sort -M -t' ' -k3 frutas.txt
6 abacate JAN
1 uva FEV
2 abacaxi MAR
9 limão ABR
7 melancia JUN
5 pêssego JUL
4 morango AGO
10 banana SET
3 amora OUT
8 laranja DEZ
Nota:
Uma cadeia inicial, consistindo em qualquer quantidade de espaços em branco, seguida por uma abreviatura de nomes de mês, é convertido para maiúsculo e comparado na seguinte ordem: JAN, FEV, ..., DEZ. Nomes inválidos comparam baixa para nomes válidos. A categoria de localidade 'LC_TIME' determina o mês na grafia padrão, um espaço em branco é um espaço ou uma guia, mas a localidade em 'LC_CTYPE' pode alterar isso.
5. Revertendo a ordem de classificação.
SHAMAN@shellscriptx:~/exemplo$ sort -n -r frutas.txt
10 banana SET
9 limão ABR
8 laranja DEZ
7 melancia JUN
6 abacate JAN
5 pêssego JUL
4 morango AGO
3 amora OUT
2 abacaxi MAR
1 uva FEV
Nota:
Utilizar o parâmetro '--reverse' ou '-r' faz com que os dados da saída padrão sejam classificados na sua ordem reversa preferivelmente.
6. Classificando o sistema de arquivos por tamanho. (ordem decrescente)
SHAMAN@shellscriptx:~$ df -h | tail -n +2 | sort -t ' ' -k2 -h -r
/dev/sdc4 340G 39G 285G 12% /home
/dev/sdc2 111G 6,8G 99G 7% /
tmpfs 7,9G 14M 7,8G 1% /dev/shm
tmpfs 7,9G 0 7,9G 0% /sys/fs/cgroup
udev 7,8G 0 7,8G 0% /dev
tmpfs 1,6G 9,4M 1,6G 1% /run
tmpfs 1,6G 24K 1,6G 1% /run/user/1000
tmpfs 1,6G 0 1,6G 0% /run/user/118
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
Nota:
Classifica numericamente primeiro pelo sinal numérico (negativo, zero ou positivo); Então pelo sufixo SI (vazio, ou 'k' ou 'K', ou qualquer de 'MGTPEZY", nessa ordem); E finalmente pelo valor numérico.Por exemplo, '1023M' classifica antes de '1G' porque 'M' (mega) precede 'G' (giga) como um sufixo SI. Esta opção classifica os valores que são consistentemente escalados para o sufixo mais próximo, independentemente de os sufixos indicarem poderes de 1000 ou 1024 e, portanto, classifica a saída de qualquer invocação dos comandos 'df', 'du' ou 'ls' que são invocados com suas opções '--human-readable' ou '-si'. A sintaxe para números é a mesma que para a opção '--numeric-sort'; O sufixo SI deve seguir imediatamente o número. Observe também o comando 'numfmt', que pode ser usado para reformatar os números para o formato humano do tipo _after_, permitindo assim que o sort funcione com números mais precisos.
Para o próximo exemplo criei um arquivo chamado ip.txt com o seguinte conteúdo:
SHAMAN@shellscriptx:~$ cat ip.txt
192.168.1.1
192.168.1.2
192.168.1.3
172.143.2.1
172.143.2.2
172.143.2.3
10.0.0.1
10.0.0.2
10.0.0.3
Estão armazenados inúmeros ranges de IP's, divididos em 3 VLAN's. São elas: 192, 172 e 10.
7. Listando em ordem crescente o último octeto de cada VLAN.
SHAMAN@shellscriptx:~$ sort -t'.' -k4n ip.txt
10.0.0.1
172.143.2.1
192.168.1.1
10.0.0.2
172.143.2.2
192.168.1.2
10.0.0.3
172.143.2.3
192.168.1.3
Comentários
Postar um comentário