Xargs para iniciantes com exemplos

Xargs para iniciantes com exemplos

Usando Xargs, descrito no manual Linux XARGS como uma ferramenta que constrói e executa linhas de comando a partir de entrada padrão, uma vez que pode exercer uma quantidade significativa de energia adicional sobre qualquer outro comando executado na linha de comando BASH. Basicamente, Xargs levará a saída de qualquer outra ferramenta e usará isso como sua própria entrada para processamento e ação adicionais (daí a referência à execução de linhas de comando no manual). Se esta for suas primeiras semanas ou meses com Xargs, Ou você está apenas começando, este é o melhor lugar para você entrar Xargs.

Neste tutorial, você aprenderá:

  • Como usar Xargs Da linha de comando em Bash
  • Como Xargs funciona, o que faz e como usá -lo bem
  • Exemplos básicos de uso usando Xargs Da linha de comando em Bash
Xargs para iniciantes com exemplos

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Independente da distribuição Linux
Programas Linha de comando Bash, sistema baseado em Linux
Outro O Xargs O utilitário está incluído no shell da partida por padrão
Convenções # - requer que os comandos linux -comidos sejam executados com privilégios de raiz diretamente como usuário root ou por uso de sudo comando
$-exige que o dado-linux-commands seja executado como um usuário não privilegiado regular


Exemplo 1: Um começo simples

Vamos mergulhar com um simples Xargs exemplo:

$ echo '1'> 1 $ echo '2'> 2 $ echo '3'> 3 $ ls 1 2 3 $ ls | Xargs Cat 1 2 3 

Neste exemplo, criamos rapidamente 3 arquivos ecoando um número e depois redirecionando a saída (usando >) a 3 arquivos individuais nomeados 1 para 3. Depois disso, verificamos a existência dos arquivos com o ls Comando (conteúdo do diretório de listas).

No último comando, usamos o ls e canalizado (usando |) é saída para Xargs. Depois de Xargs Comando listamos o novo comando que queríamos Xargs executar Para qualquer entrada recebida, individualmente por entrada, nesse caso gato (que produz o conteúdo de um arquivo).

Basicamente, o comando acima é análogo com o seguinte conjunto de comandos (embora se o conteúdo do diretório mudasse, não seria mais análogo como o Xargs simplesmente incluirá novas entradas de diretório):

$ CAT 1 1 $ CAT 2 2 $ CAT 3 3 

Exemplo 2: um pouco mais complexo

$ ls -cor = nunca | xargs -i  cat  1 2 3 

Aqui, adicionamos alguns idiomas de sintaxe de bash (um idioma é um construto/expressão de linguagem) para melhorar muito a qualidade e talvez a legibilidade do mesmo script de uma linha, embora a saída - neste caso - permaneceu a mesma.

O -EU opção para Xargs define a substituir String que será usada dentro do comando XARGS para inserir, no ponto em que a string de substituição é usada novamente, a entrada recebida e a de cada entrada individualmente - I.e. o comando especificado após o Xargs O comando será executado para cada entrada individualmente.

O --cor = nunca A adição torna a saída gerada pelo ls comando (e, portanto, a entrada para o Xargs comando) muito mais seguro.

Exemplo 3: saída de buggy

No último exemplo, apresentamos --cor = nunca como uma opção aconselhável. Vejamos um exemplo de como - sem essa opção - podemos encontrar problemas:

A saída LS é contaminada após a utilização do XARGS, exigindo o uso da opção -Color = Never para LS
$ mkdir 1 2 3 $ ls 1 2 3 $ ls | XARGS LS LS: Não é possível acessar "


Saída interessante 🙂 então o que aconteceu aqui?

Primeiro criamos três diretórios, 1 para 3, e posteriormente verificou a criação dela. Observe que a saída é azul escuro, cortesia das cores da casca de bash, que são configuradas por padrão, por exemplo, Ubuntu.

Em seguida, tomamos a produção de ls e passou para Xargs que por sua vez passou de volta para ls. Semelhante a 'eco 1 | LS 'alguém esperaria. Mas não funcionou! Em vez disso, recebemos um conjunto de códigos de cores backr. Qualquer pessoa que veja isso pela primeira vez teria dificuldade em vinculá -lo de volta aos códigos de cores.

Adicionando uma opção simples --cor = nunca higienizada o ls saída como entrada mais adequada para Xargs, e a saída parece esperada: para os diretórios 1 para 3, como saída pelo ls comando, liste o conteúdo (i.e. igual a LS 1; LS 2; LS3).

Exemplo 4: Texto analisando com XARGS e sed

$ echo -e '1 \ n2 \ n3'> teste $ teste de gato 1 2 3 $ ls teste $ ls -cor = nunca | Xargs -i  cat  | sed 's | [2-3] | 0 |' 1 0 0 $ ls -cor = nunca | Xargs -i  cat  | sed 's | [2-3] | 0 |' | xargs -i  grep  $ (ls) 1 

Um exemplo um pouco mais desafiador, mas você logo entenderá.

O primeiro comando simplesmente criou um arquivo com três linhas (\ n cria uma nova linha e o -e a opção de eco permite o \ n ser usado). Em seguida, produzimos o conteúdo do arquivo usando gato, e verifiquei quantos arquivos estavam presentes usando ls (apenas um; o teste arquivo que criamos).

Em seguida, temos o nosso comando suculento xargs, que - como você sabe de exemplos anteriores - pega a listagem do diretório, envia para Xargs e produz o conteúdo de cada arquivo aprovado usando gato. Então temos um pequeno sed comando que substitui os números 2 e 3 a 0. A saída é o conteúdo completo do arquivo de teste, mas com o 2 e 3 alterado para 0 conforme instruído.

Finalmente, pegamos o mesmo comando e passamos para outro Xargs. Pense assim; visualmente (em sua mente) ver o 1, 0, 0 saída do comando anterior sendo canalizado (|) no final Xargs sem a complexidade anterior. Veja como você pode construir comandos muito complexos gradualmente assim? Isso também mostra o poder de Xargs em poucas palavras, embora muito mais seja possível.

No comando final, passamos isso 1, 0, 0 saída em grep, que pesquisará o conteúdo de $ (ls). $ () Inicia uma subshell, executa qualquer comando que esteja nele e insere a saída desse comando no local onde a sub -Shell foi chamada. Em outras palavras, estamos executando:

Grep '1' ./teste grep '0' ./teste grep '0' ./teste 

E os resultados são realmente como esperados; 1 Somente, pois não havia zeros no arquivo para começar.

Conclusão

Neste artigo, analisamos o básico do Xargs comando e alguns exemplo de como Xargs pode ser usado, incluindo a análise de texto e a manipulação da listagem de diretórios. Meu próximo artigo será mais avançado Xargs Uso, incluindo exemplos adicionais.

Aproveitar Xargs e deixe -nos um comentário com o seu mais legal Xargs linhas de comando ou scripts!

Tutoriais do Linux relacionados:

  • Exemplos sobre como usar o comando XARGS no Linux
  • Xargs com vários threads com exemplos
  • Coisas para instalar no Ubuntu 20.04
  • Loops aninhados em scripts de basquete
  • Mastering Bash Script Loops
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Comandos básicos do Linux
  • Comandos Linux: os 20 comandos mais importantes que você precisa para…
  • Exemplos de uma linha do Linux Complex Bash