Xargs para iniciantes com exemplos
- 4413
- 599
- Maurice Champlin
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
Requisitos de software e convenções usadas
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:
$ 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