Os sistemas operacionais baseados em Linux oferecem muitos utilitários de processamento de texto de risco de comando que você pode usar em sua rotina diária. O comando cut é um desses utilitários de manipulação de texto que usa delimitadores, bytes, campos e colunas para buscar uma string necessária de um banco de dados de registro simples ou de uma risco.
Uma vez que um banco de dados flat-file não possui uma relação estrutural e os registros são separados com a ajuda de delimitadores, cut é uma instrumento ideal para extrair caracteres ou bytes de informações. Nascente cláusula discute o comando de galanteio em detalhes e demonstra alguns exemplos práticos com diferentes opções de filtro para você estrear a usar a instrumento.
Visão universal do comando de galanteio
cut usa a seguinte sintaxe básica:
cut <option> <file>
Você também pode canalizá-lo com outros comandos da seguinte forma:
echo “string_of_characters” | cut <options>
Observe que a falta de qualquer opção gera um erro. Cá estão alguns sinalizadores que você pode usar com cut para invocar suas várias funções:
Opção | Descrição |
---|---|
-b | Cortes por posição de byte |
-c | Cortes por posição do personagem |
-d | Extrai a string usando o projectar especificado com a opção de campo (-f) |
-f | Extrações por um campo especificado |
-s | Extrações unicamente para delimitadores |
–complemento | Imprima a saída, exceto para o campo que você especificou |
–delimitador de saída | Substitua o projectar existente pelo que você especificou |
Cá estão alguns exemplos do comando de galanteio que o ajudarão a entender melhor a instrumento e suas funções.
Use o -b opção para buscar strings de caracteres por sua escrutínio de bytes, uma vez que segue:
echo "Hello World" | cut -b 1,2,3,5,8,9
Saída:
Heloor
Você também pode especificar um caminho de registro em vez de uma string:
cut -b 1,2,3,4,5 filename.txt
Ou você pode extrair caracteres de harmonia com sua posição no texto. Use o -c opção seguida pela sequência/ordem de caracteres que você precisa buscar da seguinte forma:
echo "Hello World" | cut -c 1,2,3,5,6,8,10,11
Saída:
Helo old
Da mesma forma, para buscar campos ou colunas de um banco de dados de registro simples, use o comando cut com o -f opção de bandeira:
cut -f 3 database.txt
2. Fita de galanteio de bytes ou caracteres
Você também pode usar o -b flag com o comando cut para extrair e imprimir vários intervalos de bytes da seguinte forma:
cut -b 1-7,16-23 database.txt
Você pode definir o pausa para buscar caracteres usando o -c sinalizar da seguinte forma:
cut -c 1-7,16-23 database.txt
Use o -cn- opção para extrair texto do enésimo caractere até o final da risco, onde n é o índice de um caractere na string.
Por exemplo, para extrair a string começando do sexto caractere até o final da risco:
cut -c6- database.txt
Ou use o seguinte comando para buscar do início até o último m caracteres do registro:
cut -c-8 database.txt
4. Golpe vários campos de um registro
Você também pode imprimir vários campos de um registro usando o -f bandeira.
cut -f 1,2 database.txt
Saída:
NAME AGE
Jhon 20
Lisa 24
Jack 18
Bruce 23
Nancy 19
Você pode usar o -d sinalizador para especificar o projectar com o -f opção. O projectar especifica o caractere usado para separar campos em um registro de texto.
Por exemplo, para extrair a primeira pilastra do registro /etc/passwd, use dois pontos (:) uma vez que projectar:
cut -d ‘:’ -f 1 /etc/passwd
Da mesma forma, o valor do projectar no fluxo de texto fornecido é um único espaço:
echo "The 1% of the 1%" | cut -d ' ' -f 2,3
Saída:
1% of
6. Altere o projectar de saída para exibição
O –delimitador de saída sinalizador adiciona flexibilidade à saída do comando de galanteio. Por exemplo, você pode usar o sinalizador para exibir a saída em uma risco separada usando o $’n’ (novidade risco), uma vez que segue:
grep alice /etc/passwd | cut -d ':' -f 1,5,7 --output-delimiter=$'n'
Saída:
alice
Alice
/bin/sh
Ou por outra, você também pode substituir um projectar de um registro de ingresso pelo projectar de sua escolha na saída usando o –delimitador de saída bandeira:
grep root /etc/passwd | cut -d ':' -f 1,6,7 [email protected]
Saída:
[email protected]/[email protected]/bin/bash
[email protected]/var/lib/openvpn/[email protected]/usr/sbin/nologin
7. Trinchar campos unicamente quando uma risco contém o projectar
Use o -s sinalizador para extrair campos somente quando as linhas contiverem um projectar. Por exemplo, o comando a seguir não buscará o campo -f 1 a menos que tenha um projectar de espaço:
echo "HelloWorld" | cut -d " " -f 1 -s
Pelo contrário, o comando aquém mencionado gerará uma saída, pois a string contém o projectar especificado:
echo "Hello World" | cut -d " " -f 1 -s
Saída:
Hello
Da mesma forma, você também pode usar qualquer outro caractere uma vez que projectar:
echo "Hello:World" | cut -d ":" -f 2 -s
Saída:
World
8. Complemente a saída do comando
O utilitário de galanteio também permite imprimir todos os campos, exceto o campo especificado. Use o –complemento opção da seguinte forma para buscar todos os detalhes da conta do usuário root, exceto a quinta pilastra:
grep "root" /etc/passwd | cut -d ':' --complement -s -f 5
Saída:
root:x:0:0:/root:/bin/bash
Da mesma forma, no exemplo aquém, o -f 1 parâmetro deve exibir Olá texto, no entanto, devido ao –complemento opção, imprime unicamente o resto.
echo "Hello to the whole World" | cut -d " " -f 1 --complement
Saída:
to the whole World
9. Golpe de tubos com o utilitário sed
A melhor segmento é que você pode combinar o comando cut com a saída padrão de outros comandos Linux/Unix.
sed é uma dessas ferramentas de edição de texto que você pode usar para excluir, inserir e substituir seu texto. Você pode facilmente encanar sua saída para o comando de galanteio.
No exemplo aquém, a saída do comando grep é canalizada para o utilitário sed que substitui dois pontos (:) por um hífen (-) e, em seguida, cut exibe os campos 1, 6 e 7 da seguinte forma:
grep alice /etc/passwd | sed 's/:/-/g' | cut -d ' ' -f 1,5,7
Saída:
alice-x-1005-1008-Alice-/home/new/alice-/bin/sh
Trabalhando com texto no Linux usando cut
O comando cut é um utilitário de risco de comando maleável e eficiente que você pode usar em vários casos de uso de manipulação de texto. Ele utiliza operações para filtrar texto de arquivos ou dados de ingresso padrão. O utilitário também tem a vantagem de permitir que os usuários limitem o texto que desejam exibir e adicionem delimitadores de sua própria escolha.
No entanto, nascente comando também tem algumas limitações. Você não pode usar expressões regulares para especificar o projectar ou usar várias opções de comando de galanteio simultâneo. Nascente cláusula cobriu exemplos práticos de nível obrigatório a avançado deste utilitário para ajudar os iniciantes a entender claramente os comandos de manipulação de texto no Linux.
Leia a seguir
Sobre o responsável