COMO LOCALIZAR E APAGAR ARQUIVOS COM 0 LINHAS? [RESOLVIDO]

1. COMO LOCALIZAR E APAGAR ARQUIVOS COM 0 LINHAS? [RESOLVIDO]

Kauê Murakami
murakamiKaue

(usa Linux Mint)

Enviado em 01/07/2018 - 21:15h

Faça um scriptshell para apagar arquivos com 0 linhas. O script deve receber o caminho do arquivo por argumento e apagá-lo se
o número de linhas escritas no arquivo é igual a 0.
(Dica: Experimente o comando wc com a flag –lines. Redirecione o arquivo para o comando wc, utilizando o caractere <)

Não tenho a mínima ideia de como fazer nem por onde começar, não aprendemos nada sobre o assunto mas temos esse trabalho pra fazer rsrsrsrsrsr


  


2. MELHOR RESPOSTA

Diego Mendes Rodrigues
diegomrodrigues

(usa Ubuntu)

Enviado em 01/07/2018 - 23:48h

Opa!
No shell script abaixo, iniciei testando se o usuário passou um nome de arquivo para o script, com:
if [ $# == 1 ]; 


Depois contei o número de linhas no arquivo, criando a variável:
linhas=$(wc --line < $1) 
.

No
if [ $linhas -eq 0 ]; 
decido se o arquivo possui 0 linhas, nesse caso, apago ele com
rm $1 


Segue o shell script.
#!/bin/bash
if [ $# == 1 ];
then
linhas=$(wc --line < $1)
if [ $linhas -eq 0 ];
then
echo "Apagando "$1
rm $1
else
echo $1" possui "$linhas" linhas, não será apagado"
fi
else
echo "Passe um arquivo como parâmentro"
fi

Caso te atenda, defina minha resposta como "Melhor resposta".

Abraço,
Diego M. Rodrigues

3. Re: COMO LOCALIZAR E APAGAR ARQUIVOS COM 0 LINHAS? [RESOLVIDO]

Leonardo
Valeyard

(usa Void Linux)

Enviado em 01/07/2018 - 21:47h

Pra ver quantas linhas tem o arquivo da forma pedida, é assim:
wc -l < file.txt 

Agora você precisa fazer um if com o arquivo passado como argumento do script, se o output desse comando for 0, remova ele.


4. Re: COMO LOCALIZAR E APAGAR ARQUIVOS COM 0 LINHAS?

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 02/07/2018 - 18:03h

murakamiKaue escreveu:

Faça um scriptshell para apagar arquivos com 0 linhas. O script deve receber o caminho do arquivo por argumento e apagá-lo se
o número de linhas escritas no arquivo é igual a 0.
(Dica: Experimente o comando wc com a flag –lines. Redirecione o arquivo para o comando wc, utilizando o caractere <)

Não tenho a mínima ideia de como fazer nem por onde começar, não aprendemos nada sobre o assunto mas temos esse trabalho pra fazer rsrsrsrsrsr


Boa tarde.
Segue:

#!/bin/bash
[ -e $1 ] && (( $(wc -l < "$1") == 0 )) && rm $1 || echo "O ARQUIVO: $1 NÃO EXISTE ou, é > 0"
#ou
[[ -e $1 && ! -s $1 ]] && rm $1 || echo "O ARQUIVO: $1 NÃO EXISTE ou, é > 0"


marcelo oliver



5. Re: COMO LOCALIZAR E APAGAR ARQUIVOS COM 0 LINHAS? [RESOLVIDO]

Kauê Murakami
murakamiKaue

(usa Linux Mint)

Enviado em 05/07/2018 - 19:42h

diegomrodrigues escreveu:

Opa!
No shell script abaixo, iniciei testando se o usuário passou um nome de arquivo para o script, com:
if [ $# == 1 ]; 


Depois contei o número de linhas no arquivo, criando a variável:
linhas=$(wc --line < $1) 
.

No
if [ $linhas -eq 0 ]; 
decido se o arquivo possui 0 linhas, nesse caso, apago ele com
rm $1 


Segue o shell script.
#!/bin/bash
if [ $# == 1 ];
then
linhas=$(wc --line < $1)
if [ $linhas -eq 0 ];
then
echo "Apagando "$1
rm $1
else
echo $1" possui "$linhas" linhas, não será apagado"
fi
else
echo "Passe um arquivo como parâmentro"
fi

Caso te atenda, defina minha resposta como "Melhor resposta".

Abraço,
Diego M. Rodrigues


Muito obrigado a todos, em especial pro Diego, todos fizeram o certo de apagar, mas precisava receber o local como parâmetro, agradecido ai. valeu.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts