Usar comando como parâmetro de outro

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

Mauriciodez
Mauriciodez

(usa Debian)

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

msoliver escreveu:
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.


entendi ... mas tem algo q não se encaixa nessa porcaria ... se a princípio todos os 2 comandos teria o mesmo resultado ... pq com 1 a bagaça funciona e com o outro não ????

mauricio@Phanthom ~ $ sed "s/$(sed '1!d' arquivo1.txt)/$(sed '1!d' arquivo2.txt)/" arquivo1.txt
bash: !d': event not found
mauricio@Phanthom ~ $ sed "s/$(sed -n '2p' arquivo1.txt)/$(sed -n '2p' arquivo2.txt)/" arquivo1.txt
linha 1 do arquivo 1
linha 2 do arquivo 2
linha 3 do arquivo 1
linha 4 do arquivo 1
linha 5 do arquivo 1
linha 6 do arquivo 1
linha 7 do arquivo 1
mauricio@Phanthom ~ $ sed "s/$(sed '2!d' arquivo1.txt)/$(sed '2!d' arquivo2.txt)/" arquivo1.txt
bash: !d': event not found
mauricio@Phanthom ~ $ sed '2!d' arquivo1.txt
linha 2 do arquivo 1
mauricio@Phanthom ~ $ sed '2!d' arquivo2.txt
linha 2 do arquivo 2
mauricio@Phanthom ~ $


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


  


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

Perfil removido
removido

(usa Nenhuma)

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

Pode ser quebrado:

A="$(sed '2!d' arquivo1.txt)"
B="$(sed '2!d' arquivo2.txt)"
sed "s/$A/$B/" arquivo1.txt > arquivo3.txt


----------------------------------------------------------------------------------------------------------------
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



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

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 19/10/2016 - 22:03h

listeiro_037 escreveu:
Pode ser quebrado:


Minha idéia é justamente aprender como unir vários comandos em 1 só , só usei aquele SED para efeito de exemplo
___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


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

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/10/2016 - 22:05h

Às vezes pode compensar quebrar.
Ou primeiro ir testando o quebrado.
Depois juntando tudo numa só linha.

----------------------------------------------------------------------------------------------------------------
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



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

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 19/10/2016 - 22:12h

listeiro_037 escreveu:
Às vezes pode compensar quebrar.
Ou primeiro ir testando o quebrado.
Depois juntando tudo numa só linha.


entendo ... mas não é o caso, justamente pq já tinha feito o comando quebrado !!!

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


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

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 19/10/2016 - 23:11h

Mauriciodez escreveu:

msoliver escreveu:
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.


entendi ... mas tem algo q não se encaixa nessa porcaria ... se a princípio todos os 2 comandos teria o mesmo resultado ... pq com 1 a bagaça funciona e com o outro não ????

mauricio@Phanthom ~ $ sed "s/$(sed '1!d' arquivo1.txt)/$(sed '1!d' arquivo2.txt)/" arquivo1.txt
bash: !d': event not found
mauricio@Phanthom ~ $ sed "s/$(sed -n '2p' arquivo1.txt)/$(sed -n '2p' arquivo2.txt)/" arquivo1.txt
linha 1 do arquivo 1
linha 2 do arquivo 2
linha 3 do arquivo 1
linha 4 do arquivo 1
linha 5 do arquivo 1
linha 6 do arquivo 1
linha 7 do arquivo 1
mauricio@Phanthom ~ $ sed "s/$(sed '2!d' arquivo1.txt)/$(sed '2!d' arquivo2.txt)/" arquivo1.txt
bash: !d': event not found
mauricio@Phanthom ~ $ sed '2!d' arquivo1.txt
linha 2 do arquivo 1
mauricio@Phanthom ~ $ sed '2!d' arquivo2.txt
linha 2 do arquivo 2
mauricio@Phanthom ~ $


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


Mauricio.
Ocorre o ERRO, pq o "!" é um caractere especial do BASH, veja em:
man history |sed -n '/Event Designators/,/Word Designators/p'|sed '$d' 

echo -e "VIVA O LINUX!\n"
bash: !\n: event not found

Contornando . . . No echo é fácil . . .
echo -e 'VIVA O LINUX!\n'

mso




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

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 20/10/2016 - 00:09h

msoliver escreveu:
Ocorre o ERRO, pq o "!" é um caractere especial do BASH, veja em:


1 - Se é caractere especial pq funciona no simples ??
sed '2!d' arquivo1.txt 



2 - Se é caractere especial seria correto afirmar q bastaria escapa-lo então ???
sed "s/$(sed '2\!d' arquivo1.txt)/$(sed '2\!d' arquivo2.txt)/" arquivo1.txt 

( estou sem o linux agora pra testar )
___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


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

Perfil removido
removido

(usa Nenhuma)

Enviado em 20/10/2016 - 00:13h

Assim funciona:

echo -e "VIVA O LINUX"'!'"\n"

----------------------------------------------------------------------------------------------------------------
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



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

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 20/10/2016 - 20:50h

Pessoas ... fiz um teste aqui
sed "s/$(cat arquivo1.txt | head -2 | tail -1)/$(cat arquivo2.txt | head -2 | tail -1)/" arquivo1.txt 


isso é um padrão ??? ou seja, implementar $(comando) em outro sempre vai funcionar ???
___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


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

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 20/10/2016 - 23:12h

Mauriciodez escreveu:

msoliver escreveu:
Ocorre o ERRO, pq o "!" é um caractere especial do BASH, veja em:


1 - Se é caractere especial pq funciona no simples ??
sed '2!d' arquivo1.txt 



2 - Se é caractere especial seria correto afirmar q bastaria escapa-lo então ???
sed "s/$(sed '2\!d' arquivo1.txt)/$(sed '2\!d' arquivo2.txt)/" arquivo1.txt 

( estou sem o linux agora pra testar )
___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


Sem Comentários, para as perguntas acima . . . :)
Vai ler o man (bash|history). Rsrsrsrsrs
mso



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

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 21/10/2016 - 12:30h

eu já tinha lido e não entendi nada ... aqui é na base no google translate e mesmo q a tradução fosse a mais porca possível, não tem nada dizendo q "!" é um caractere especial e muito menos não tem nada q me de uma pista de respostas para minhas perguntas ... veja

! Comece uma substituição história, exceto quando seguido por um espaço em branco, nova linha, = ou (.
! N Consulte o comando linha n.
! -n Consulte a corrente de comando menos n.
!! Consulte o comando anterior. Este é um sinônimo para `! -1 '.
!corda
Consulte o comando mais recente anterior à atual posição na lista do histórico de partida
com corda.
!?corda[?]
Consulte o comando mais recente anterior à posição atual na lista do histórico de contenção
ing string. A fuga? pode ser omitido se o texto é imediatamente seguido por uma nova linha.
^ ^ String1 string2 ^
substituição rápida. Repetir o último comando, substituindo string1 com string2. Equivalente a
`` !!: S / string1 / string2 / '' (veja modificadores abaixo).
! # A linha de comando inteira escreveu até agora.


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


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

Perfil removido
removido

(usa Nenhuma)

Enviado em 21/10/2016 - 13:35h

Se você digitar !1 em BASH e der <Enter> será executado o primeiro comando da lista do history.

----------------------------------------------------------------------------------------------------------------
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