Substituir comando CUT [RESOLVIDO]

1. Substituir comando CUT [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 18/12/2016 - 13:43h

Pessoas ... pelo q andei lendo o comando 'cut' não edita o arquivo efetivamente ... o q se usa para substituir o comando cut ???

no exemplo eu tenho um 'cut', mas eu quero q as mudanças sejam efetivadas no arquivo

cut -d' ' -f 1,3-4 arquivo.txt 



  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 20/12/2016 - 08:42h

Mauriciodez escreveu:

msoliver escreveu:
Boa noite Mauricio, segue uma sugestão:
cut -d " " -f1,3-4 ARQUIVO > ARQ_TEMP;cat ARQ_TEMP > ARQUIVO 



Marcelo ... essa estrutura eu tinha feito no script ... não da mesma forma pq depois eu precisaria executar dois sed's .. no caso o "cut" eu tinha dado saída para o "temp", o 1° sed eu editei o "temp" e no 2° sed eu dei a saída para o arquivo original.

Então como eu pensei mais ou menos como vc seria a única alternativa ??

Abçs

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



Mauricio, bom dia.
Segue a opção com o awk:
awk -i inplace '{print $1,$3,$4}' arquivo 

-i inplace, altera o arquivo

Marcelo Oliver



3. Re: Substituir comando CUT [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 19/12/2016 - 19:29h

Mauriciodez escreveu:

Pessoas ... pelo q andei lendo o comando 'cut' não edita o arquivo efetivamente ... o q se usa para substituir o comando cut ???

no exemplo eu tenho um 'cut', mas eu quero q as mudanças sejam efetivadas no arquivo

cut -d' ' -f 1,3-4 arquivo.txt 


Boa noite Mauricio, segue uma sugestão:
cut -d " " -f1,3-4 ARQUIVO > ARQ_TEMP;cat ARQ_TEMP > ARQUIVO 


Att.:
Marcelo Oliver



4. Re: Substituir comando CUT [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/12/2016 - 19:34h

Tenta isso:
cut -d' ' -f 1,3-4 arquivo.txt | tee arquivo.txt 



5. Re: Substituir comando CUT [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 19/12/2016 - 19:35h

msoliver escreveu:
Boa noite Mauricio, segue uma sugestão:
cut -d " " -f1,3-4 ARQUIVO > ARQ_TEMP;cat ARQ_TEMP > ARQUIVO 



Marcelo ... essa estrutura eu tinha feito no script ... não da mesma forma pq depois eu precisaria executar dois sed's .. no caso o "cut" eu tinha dado saída para o "temp", o 1° sed eu editei o "temp" e no 2° sed eu dei a saída para o arquivo original.

Então como eu pensei mais ou menos como vc seria a única alternativa ??

Abçs

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


6. Re: Substituir comando CUT [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 19/12/2016 - 19:45h

PauloHAC escreveu:

Tenta isso:
cut -d' ' -f 1,3-4 arquivo.txt | tee arquivo.txt 


deu não paulo ... o comando 'tee' deu a mesma consequencia de ter dado saída direto no arquivo ... apagou tudo !!!
___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


7. Re: Substituir comando CUT [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 19/12/2016 - 19:50h

Mauriciodez escreveu:

msoliver escreveu:
Boa noite Mauricio, segue uma sugestão:
cut -d " " -f1,3-4 ARQUIVO > ARQ_TEMP;cat ARQ_TEMP > ARQUIVO 



Marcelo ... essa estrutura eu tinha feito no script ... não da mesma forma pq depois eu precisaria executar dois sed's .. no caso o "cut" eu tinha dado saída para o "temp", o 1° sed eu editei o "temp" e no 2° sed eu dei a saída para o arquivo original.

Então como eu pensei mais ou menos como vc seria a única alternativa ??

Abçs

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


Mauricio, não diria a única . . . mas de imediato, foi o que veio em mente . . .
Tem uma opção no "awk" que edita o arquivo, não me recordo qual . . .

marcelo Oliver



8. Re: Substituir comando CUT

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 20/12/2016 - 04:22h

Tente assim:

echo $(cut -d ' ' -f 1,3-4 arquivo) > arquivo 


Mas o ideal mesmo é sempre trabalhar com arquivos temporários.


9. Re: Substituir comando CUT [RESOLVIDO]

thinomar
thinomar

(usa Linux Mint)

Enviado em 20/12/2016 - 12:07h

Você pode usar o GNU AWK com a opção -i inplace, fica assim, mais ou menos:
gawk -i inplace '{print $1 $3 $4}' 




10. Re: Substituir comando CUT

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 20/12/2016 - 12:31h

SMarcell escreveu:
echo $(cut -d ' ' -f 1,3-4 arquivo) > arquivo 
.

Esse comando limpa o arquivo velho ... não rola ... pq eru não sei ... talvez um bug

msoliver escreveu:
Segue a opção com o awk:
awk -i inplace '{print $1,$3,$4}' arquivo 

Perfeito ... ainda por cima ignorou os múltiplos espaços ... o cut deveria ser abolido ... só pra constar ... para esse AWK agir como um CUT ( sem alterar o arquivo) seria só retirar o "-i inplace" ????

thinomar escreveu:
gawk -i inplace '{print $1 $3 $4}' 

Velho ... o Marcelo postou um código mais enxuto ( 1 letra a menos .... kkkkkkkkkkkkk ). qual seria a diferença de usar GAWK e AWK ??? o que esses comandos tem de diferentes no geral ??

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


11. Re: Substituir comando CUT [RESOLVIDO]

thinomar
thinomar

(usa Linux Mint)

Enviado em 20/12/2016 - 12:35h

Não sei se é a versão do meu awk, mas o inplace não funciona nele, só no gawk, e eu acabei lendo a resposta dele só depois de postar. Aliás, o awk/gawk tem a opção de "Field Separator", pra você falar pra ele qual que é o separador de campos. Se for espaço, então use assim:
awk -F ' ' '{...}' 



12. Re: Substituir comando CUT [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 20/12/2016 - 12:44h

thinomar escreveu:

Não sei se é a versão do meu awk, mas o inplace não funciona nele, só no gawk, e eu acabei lendo a resposta dele só depois de postar. Aliás, o awk/gawk tem a opção de "Field Separator", pra você falar pra ele qual que é o separador de campos. Se for espaço, então use assim:
awk -F ' ' '{...}' 


certo ... não sei se foi impressão minha mas o AWK ignora espaços ????
___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts