Programação BASH

Como usar $ IFS no Bash?

Como usar $ IFS no Bash?
No script, devemos quebrar os dados da string por uma variedade de razões. Split é um recurso integrado em muitas linguagens de computador que divide cada string de dados em várias partes. No entanto, o bash não possui um recurso integrado para dividir uma string. Para quebrar qualquer valor de string, existem muitos delimitadores simples e compostos a serem usados. Um IFS (Separador de campo interno) variável está sendo usado para especificar um delimitador particular para divisão de string. Neste guia, você aprenderá como usar vários métodos para ilustrar o processo de quebrar um valor de string em bash usando o $ IFS.

Pré-requisitos

Certifique-se de ter o sistema baseado em Linux instalado e configurado. Estaremos trabalhando no Ubuntu 20.04 sistema Linux. Faça login a partir de sua conta de usuário Ubuntu para começar a trabalhar no IFS. Será melhor se você logar com sua conta de usuário root. Após o login, inicie o terminal de linha de comando em seu sistema a partir da área de Atividade.

Exemplo 01: IFS dividir uma string usando espaço como valor

Para o nosso primeiro exemplo, vamos entender o conceito de divisão de uma string em bash enquanto usamos o espaço como um valor delimitador usando a variável IFS. Primeiro, temos que criar um arquivo bash em nosso sistema. Podemos criar novos arquivos em nosso sistema Linux usando o comando 'touch'. Conforme mostrado abaixo, criamos um arquivo bash 'arquivo1.sh 'usando a instrução' touch ':

$ touch file1.sh

Abra o diretório Home do seu sistema Linux usando o ícone de pasta exibido no canto esquerdo do seu Ubuntu 20.04 desktop. Você encontrará seu arquivo bash recém-criado “arquivo1.sh ”nele. Abra o arquivo “arquivo1.sh ”e digite o script abaixo. Primeiro, definimos uma string chamada "str" ​​com algum valor de string nela. Em seguida, definimos uma variável delimitadora IFS como uma variável tendo espaço como seu valor. Depois disso, usamos a instrução read para salvar e ler os dados divididos em uma matriz “strarr” usando o sinalizador “-a”. Uma instrução 'echo' é usada para imprimir uma linha de string junto com a contagem do total de palavras de uma matriz usando o “$ # strarr [*]”. O loop “for” é usado para imprimir os valores de uma matriz em forma de divisão usando a variável “var”. A barra invertida “\ n” foi usada dentro da linha de impressão junto com a variável “var” para dar uma quebra de divisão de uma linha após cada valor do array. Salve o script usando a tecla “Ctrl + S” e feche o arquivo para prosseguir.

Volte para o lado do terminal. Agora, vamos verificar a saída do código acima. Para isso, usaremos o comando 'bash' junto com o nome de um arquivo “arquivo1.sh ”para executá-lo, o que é mostrado abaixo. Primeiro, ele exibiu a linha mencionada na declaração "echo" junto com a contagem de palavras de uma matriz. Depois disso, ele exibiu todos os valores da matriz usando o loop “for” dividido por IFS.

$ bash arquivo1.sh

Exemplo 02: IFS dividir uma string usando caractere como valor

No exemplo mencionado acima, você viu como dividir variáveis ​​de string em partes enquanto usa o espaço como um delimitador de IFS. Agora, vamos usar um caractere para dividir uma string usando um delimitador IFS. Abra seu terminal de comando e crie um novo arquivo bash “arquivo2.sh ”em seu diretório inicial do sistema Linux usando o comando“ touch ”da seguinte forma:

$ touch file2.sh

Abra o diretório inicial do seu sistema Linux. Você encontrará o arquivo recém-criado nele. Abra seu arquivo recém-criado e escreva o código bash apresentado abaixo. Na linha 3, iniciamos uma declaração “echo” para imprimir uma linha. A próxima linha lê a entrada fornecida por um usuário em um terminal usando a palavra-chave ”ler”. Em seguida, definimos o delimitador “IFS” e definimos a vírgula “,” como seu valor de caractere. Outra instrução "ler" foi especificada para ler e salvar os valores de divisão de vírgula de uma string que é inserida por um usuário em uma matriz "strarr". Por fim, iniciamos três instruções de eco para imprimir os valores de divisão separados por vírgula como variáveis, conforme mostrado na imagem. Salve e feche este arquivo.

Agora, temos que executar este arquivo salvo. Execute o comando bash mostrado abaixo seguido do nome de um arquivo em um terminal para fazer isso. Você deve adicionar algum valor de string que deve conter vírgula “,” dentro dos valores e clicar no botão Enter. Agora seus dados foram salvos em um array “strarr”. As últimas três linhas mostram a saída das declarações “echo”. Você pode ver, cada texto antes e depois da vírgula foi usado como um valor separado.

$ bash arquivo2.sh

Exemplo 03: String dividida IFS

Fizemos os dois exemplos anteriores em um arquivo bash. Agora teremos uma ilustração do uso de “IFS” sem criar um arquivo bash. Abra seu shell de comando para fazer isso. Primeiro, precisamos criar uma string "var" com um valor de string nela. Esta string contém vírgulas após cada palavra.

$ var = ”Olá, tenho 25, anos,.”

Em seguida, inicialize a variável 'IFS' com a vírgula do caractere como o valor do delimitador.

$ IFS =,

Depois disso, usamos o loop “for” para pesquisar cada palavra da variável “var” separada por uma vírgula delimitadora IFS e imprimi-la usando a instrução “echo”.

$ para i em $ var
> fazer
> echo [$ i]
> Feito

Você terá a saída abaixo. Ele mostrará cada palavra de uma variável de string “var” em uma nova linha por causa da vírgula delimitadora “,” usada como um caractere de divisão.

Conclusão:

Neste guia, você aprendeu uma variedade de métodos para dividir os valores de entrada em um bash, e.g., com espaço ou com um personagem. Esperamos que as ilustrações mencionadas neste guia tutorial ajudem você a quebrar cada string usando o delimitador IFS.

Instale o emulador Dolphin mais recente para Gamecube e Wii no Linux
O Dolphin Emulator permite que você jogue seus jogos de Gamecube e Wii escolhidos em computadores pessoais Linux (PC). Sendo um emulador de jogo disp...
Como usar o GameConqueror Cheat Engine no Linux
O artigo cobre um guia sobre como usar o mecanismo de cheat GameConqueror no Linux. Muitos usuários que jogam no Windows costumam usar o aplicativo “C...
Melhores emuladores de console de jogo para Linux
Este artigo irá listar software de emulação de console de jogo popular disponível para Linux. A emulação é uma camada de compatibilidade de software q...