Usar comando como parâmetro de outro

1. Usar comando como parâmetro de outro

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 19/10/2016 - 13:08h

Pessoas, existe uma forma genérica para usar um comando para ser usado como parametro do outro, ou eu sempre tenho q trata-los separadamente ?

tipo assim usar um SED dentro de outro SED ...

EX: sed 's/[sed '15!d' arquivo1.txt]/[sed '2!d' arquivo2.txt]/'





  


2. Re: Usar comando como parâmetro de outro

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/10/2016 - 13:55h

sed -r "s/[`sed '15!d' arquivo1.txt`]/[`sed '2!d' arquivo2.txt`]/"

Foi usado `comando` para rodar os outros dois SED.
Colchetes são para expressões regulares.
Parâmetro -r também.

Ao invés de `...` poderia ser $(...) mas há limitações quanto a shell.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



3. Re: Usar comando como parâmetro de outro

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 19/10/2016 - 14:10h

listeiro_037 escreveu:

sed -r "s/[`sed '15!d' arquivo1.txt`]/[`sed '2!d' arquivo2.txt`]/"

Foi usado `comando` para rodar os outros dois SED.
Colchetes são para expressões regulares.
Parâmetro -r também.

Ao invés de `...` poderia ser $(...) mas há limitações quanto a shell.



velho ... eu tenho altos problemas para encaixar na mente essas paradas sacou ... eu só acho na net exemplos de comandos, não acho coisas do básico .... tipo assim ... quando usar ' ... quando usar " ... quando usar { ... entende ? então eu me sinto como se estivesse pegando o bonde andando !!! fico perdido em umas paradas bestas !!!
___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


4. Re: Usar comando como parâmetro de outro

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/10/2016 - 14:15h

O que eu aprendi de shell script foi analisando scripts prontos e lendo man 1 bash. Mas lá se vão mais de dez anos.

A minha memória é péssima. Tem coisas que eu entendo melhor que as outras e por sorte guardo.

Deve ter algum caminho que você possa seguir e entender melhor.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



5. Re: Usar comando como parâmetro de outro

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 19/10/2016 - 14:45h

Mauriciodez escreveu:
velho ... eu tenho altos problemas para encaixar na mente essas paradas sacou ... eu só acho na net exemplos de comandos, não acho coisas do básico .... tipo assim ... quando usar ' ... quando usar " ... quando usar { ... entende ? então eu me sinto como se estivesse pegando o bonde andando !!! fico perdido em umas paradas bestas !!!
___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


Mauricio, boa tarde.
No início, tbem me confundia . . .
Até que achei isso.....
http://aurelio.net/shell/canivete/ 

Me ajudou muito . . .

Marcelo Oliver


6. Re: Usar comando como parâmetro de outro

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 19/10/2016 - 19:39h

listeiro_037 escreveu:
sed -r "s/[`sed '15!d' arquivo1.txt`]/[`sed '2!d' arquivo2.txt`]/"


esse comando não deu nada aqui não velho ...

mauricio@Phanthom ~ $ sed -r "s/[`sed '1!d' arquivo1.txt`]/[`sed '2!d' arquivo2.txt`]/"
bash: !d': event not found

___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


7. Re: Usar comando como parâmetro de outro

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 19/10/2016 - 19:39h

msoliver escreveu:
No início, tbem me confundia . . .
Até que achei isso.....


anotado e salvo aqui velho ... valeu !!!

___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


8. Re: Usar comando como parâmetro de outro

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/10/2016 - 19:44h

Mauriciodez escreveu:

listeiro_037 escreveu:
sed -r "s/[`sed '15!d' arquivo1.txt`]/[`sed '2!d' arquivo2.txt`]/"


esse comando não deu nada aqui não velho ...

mauricio@Phanthom ~ $ sed -r "s/[`sed '1!d' arquivo1.txt`]/[`sed '2!d' arquivo2.txt`]/"
bash: !d': event not found

___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


É mais ou menos o que você pediu. Sintaxe é sintaxe.
Agora o que a linha de comando dos dois comandos internos retornou mereceria uma avaliação.
Não tem como adivinhar.

Se houver mais de uma linha como resultado ou sem retorno então não funcionará mesmo.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



9. Re: Usar comando como parâmetro de outro

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 19/10/2016 - 20:16h

Mauriciodez escreveu:

listeiro_037 escreveu:
sed -r "s/[`sed '15!d' arquivo1.txt`]/[`sed '2!d' arquivo2.txt`]/"


esse comando não deu nada aqui não velho ...

mauricio@Phanthom ~ $ sed -r "s/[`sed '1!d' arquivo1.txt`]/[`sed '2!d' arquivo2.txt`]/"
bash: !d': event not found

___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

=========================================================================================
Mauricio, só "preu" entender ....
O que você quer como resultado?
É um sed 's/ISTO/AQUILO/' => Substituição, em qual arquivo?
Com esta sintaxe, funciona:
sed "s/$(sed -n '10p' LINHAS_AA.txt)/$(sed -n '10p' LINHAS_BB.txt)/" LINHAS_AA.txt 

O que esta PHOD_ _ _ _, é a "!"
Troquei o comando mas o resultado é o mesmo . . .
sed '1!d' arquivo1.txt = DELETA TUDO, MENOS a LINHA 1
sed -n '1p' arquivo1.txt = PEGUE a LINHA 1

É isso.

Abç.:
Marcelo Oliver



10. Re: Usar comando como parâmetro de outro

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 19/10/2016 - 20:47h

msoliver escreveu:
sed '1!d' arquivo1.txt = DELETA TUDO, MENOS a LINHA 1
sed -n '1p' arquivo1.txt = PEGUE a LINHA 1

É isso.


então velho ... é o q falei ... ficar pegando esses comandos na WEB sem entender a estrutura é malz ... eu peguei o comando "sed '1!d' arquivo1.txt" dizendo q era pra RETORNAR a linha ... agora vc diz q é para deletar o resto ... aí complica pro meu lado !!! kkkkkkkkkk ...

LISTEIRO ... a intenção naquele comando era realmente substituir a linha "X" de um arquivo pela linha "X" de outro arquivo, mas era só um exemplo que eu criei para a pergunta título ...

No final o q está pegando é a minha falta de conhecimento da estrutura das paradas mesmo aí como não entendo as estruturas eu não consigo montar !!!

___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


11. Re: Usar comando como parâmetro de outro

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 19/10/2016 - 21:19h

Mauriciodez escreveu:

msoliver escreveu:
sed '1!d' arquivo1.txt = DELETA TUDO, MENOS a LINHA 1
sed -n '1p' arquivo1.txt = PEGUE a LINHA 1

É isso.


então velho ... é o q falei ... ficar pegando esses comandos na WEB sem entender a estrutura é malz ... eu peguei o comando "sed '1!d' arquivo1.txt" dizendo q era pra RETORNAR a linha ... agora vc diz q é para deletar o resto ... aí complica pro meu lado !!! kkkkkkkkkk ...
___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


Mauricio, o comando:
"sed '1!d' arquivo1.txt" , retorna a linha, mas, a descrição do comando é:
sed '1!d' arquivo1.txt = DELETA TUDO, MENOS a LINHA 1.
sed '1d' arquivo1.txt => APAGA a LINHA 1 Ou NãO MOSTRA A LINHA 1
Usando sinal "!", que é de NEGAÇÃO, o COMANDO É INVERTIDO
O Termo "DELETA" que usei, está errado, o mais apropriado é MOSTRA SOMENTE a LINHA 1.

mso



12. Re: Usar comando como parâmetro de outro

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/10/2016 - 21:29h

sed 's/.../.../g'

s = search
g = global
campo1 é para pesquisa
campo2 é para substituição

sed 's/.../.../1'

esse 1 faz apenas a primeira substituição.

aqui algo para apagar linhas em branco: https://www.vivaolinux.com.br/dica/sed-Eliminando-linhas-em-branco

EDIT: pode ser que sirva para fixar algo.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts