Utilizar array ou variavel que receba varias strings (endereço de sites)

13. Re: Utilizar array ou variavel que receba varias strings (endereço de sites)

Kelvin
K3LV!N

(usa Outra)

Enviado em 22/05/2016 - 12:44h

moliver, aparentemente é para dar certo mesmo, mas esta dizendo que a expressão do sed esta irregular, deve ser algum erro bobo que não estou percebendo, alguma sintaxe errada

while IFS=$'\n' read -r sitesproprios;do

lynx -justify -nolist -nomargins -nonumbers -dump "$siteproprio" > "$siteproprio".txt #REALIZA O DUMP DO CONTEUDO DO SITE
cat $siteproprio.txt | sed -i 's/[^[:alpha:] [:digit:] ]//g' > $siteproprio1.txt #DEIXA ALFA NUMERICOS
cat $siteproprio1.txt | sed -i 's/\([a-z]\)/\L&/g' > $siteproprio2.txt # TRANSFORMA TUDO EM MINUSCULA
cat $siteproprio2.txt | sed -i 's/^$/d' > $siteproprio3.txt #REMOVE CARACTERES EM BRANCO
cat $siteproprio3.txt | sed -i 's/[^[:punct:]//g' > $siteproprio4.txt #REMOVE SINAIS DE PONTUAÇÃO

#-------- SALVANDO A BASE .arff --------#
echo -e "@relation conteudoimproprios\n@attribute palavras {própria,impropria}
@attribute text String\n\n\n@data\npropria, $(cat "$siteproprio4".txt)" >> BaseDados.arff
done<sitesproprios.txt

Outra dúvida: eu consigo fazer todos esses comandos em um unico arquivo utilizando pipe? ( | ) > $unicoarquivo.txt


Resultado da saída do comando
sed: nenhum arquivo de entrada
sed: nenhum arquivo de entrada
sed: -e expressão #1, caractere 6: comando `s' não terminado
sed: -e expressão #1, caractere 16: comando `s' não terminado
sed: nenhum arquivo de entrada
sed: nenhum arquivo de entrada
sed: -e expressão #1, caractere 6: comando `s' não terminado
sed: -e expressão #1, caractere 16: comando `s' não terminado

------------------
(program exited with code: 0)
Press return to continue



Desde já, agradeço a todos que estão contribuindo.



  


14. Re: Utilizar array ou variavel que receba varias strings (endereço de sites)

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 22/05/2016 - 22:27h

K3LV!N escreveu:

moliver, aparentemente é para dar certo mesmo, mas esta dizendo que a expressão do sed esta irregular, deve ser algum erro bobo que não estou percebendo, alguma sintaxe errada

while IFS=$'\n' read -r sitesproprios;do
lynx -justify -nolist -nomargins -nonumbers -dump "$siteproprio" > "$siteproprio".txt #REALIZA O DUMP DO CONTEÚDO DO SITE
cat $siteproprio.txt | sed -i 's/[^[:alpha:] [:digit:] ]//g' > $siteproprio1.txt #DEIXA ALFA NUMÉRICOS
cat $siteproprio1.txt | sed -i 's/\([a-z]\)/\L&/g' > $siteproprio2.txt # TRANSFORMA TUDO EM MINUSCULA
cat $siteproprio2.txt | sed -i 's/^$/d' > $siteproprio3.txt #REMOVE CARACTERES EM BRANCO
cat $siteproprio3.txt | sed -i 's/[^[:punct:]//g' > $siteproprio4.txt #REMOVE SINAIS DE PONTUAÇÃO

#-------- SALVANDO A BASE .arff --------#
echo -e "@relation conteudoimproprios\n@attribute palavras {própria,impropria}
@attribute text String\n\n\n@data\npropria, $(cat "$siteproprio4".txt)" >> BaseDados.arff
done<sitesproprios.txt

Outra dúvida: eu consigo fazer todos esses comandos em um único arquivo utilizando pipe? ( | ) > $unicoarquivo.txt


Resultado da saída do comando
sed: nenhum arquivo de entrada => SINTAXE ERRADA, VEJA O QUE FAZ O "-i"
sed: nenhum arquivo de entrada => SINTAXE ERRADA
sed: -e expressão #1, caractere 6: comando `s' não terminado
sed: -e expressão #1, caractere 16: comando `s' não terminado
sed: nenhum arquivo de entrada => SINTAXE ERRADA
sed: nenhum arquivo de entrada => SINTAXE ERRADA
sed: -e expressão #1, caractere 6: comando `s' não terminado
sed: -e expressão #1, caractere 16: comando `s' não terminado
------------------
(program exited with code: 0)
Press return to continue

Desde já, agradeço a todos que estão contribuindo.

--------------------------------------------------------------------------
Boa noite, K3LV!N.
É um ERRO BOBO MESMO... rsrsrsr

cat ARQUIVO01 | sed -i 's/ISTO//g' > ARQUIVO02 # => O sed -i ALTERA o PRÓPRIO ARQUIVO DE ENTRADA, desde que a ENTRADA não ocorra VIA PIPE.

Outra dúvida:
Consigo fazer todos esses comandos em um único arquivo utilizando pipe? ( | ) > $unicoarquivo.txt

SIM! Faça:
lynx -justify -nolist -nomargins -nonumbers -dump "$siteproprio" |COMANDO SED | COMANDO SED|COMANDO SED > "$siteproprio".txt

Quanto aos COMANDOS SED:
sed -i 's/[^[:alpha:] [:digit:] ]//g' $siteproprio.txt # O MESMO QUE "sed 's/[[:punct:]]//g'"
sed -i 's/\([a-z]\)/\L&/g' $siteproprio.txt # ERRADO! "CASA" MINUSCULA E ALTERA P/ MINUSCULA . . .
CORRETO => echo "VIVA O LINUX"|sed -r 's/([A-Z])/\L&/g'
sed -i 's/^$/d' $siteproprio.txt # REMOVE LINHA EM BRANCO
sed -i 's/[^[:punct:]//g' $siteproprio4.txt #REMOVE SINAIS DE PONTUAÇÃO => expressão errada "[^[:punct:]" => CORRETO "[[:punct:]]"

OBS:
Pode agrupar os comandos SED de SUBSTITUIÇãO, assim:

lynx -justify -nolist -nomargins -nonumbers -dump "$siteproprio" | sed 's/\([A-Z]\)/\L&/g;s/[[:punct:]]//g' > $siteproprio.txt

att.:
marcelo oliver


15. Re: Utilizar array ou variavel que receba varias strings (endereço de sites)

Kelvin
K3LV!N

(usa Outra)

Enviado em 23/05/2016 - 07:49h

msoliver,

Acertei conforme o esperado, esta funcionando, somente um pequeno problema:

quando gera o arquivo .arff ele acaba repetindo todo o conteúdo do echo, pois irá existir mais de 1 site no arquivo sites.txt exemplo como esta ficando a saída:


@relation conteudoimproprios
@attribute palavras {propria,impropria}
@attribute texto String


@data
propria, 'conteudodosite1'

@relation conteudoimproprios
@attribute palavras {propria,impropria}
@attribute texto String


@data
propria, 'conteudodosite2'


deveria ficar assim:

@relation conteudoimproprios
@attribute palavras {propria,impropria}
@attribute texto String


@data
propria, 'conteudodosite1'
propria, 'conteudodosite2'


Isso é possível, senão vou ter que dar um jeito de criar N variáveis para acertar isso (deixar de uma maneira feia hahaha).


16. Re: Utilizar array ou variavel que receba varias strings (endereço de sites)

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 24/05/2016 - 00:42h

K3LV!N escreveu:

msoliver,

Acertei conforme o esperado, esta funcionando, somente um pequeno problema:

quando gera o arquivo .arff ele acaba repetindo todo o conteúdo do echo, pois irá existir mais de 1 site no arquivo sites.txt exemplo como esta ficando a saída:


@relation conteudoimproprios
@attribute palavras {propria,impropria}
@attribute texto String


@data
propria, 'conteudodosite1'

@relation conteudoimproprios
@attribute palavras {propria,impropria}
@attribute texto String


@data
propria, 'conteudodosite2'


deveria ficar assim:

@relation conteudoimproprios
@attribute palavras {propria,impropria}
@attribute texto String


@data
propria, 'conteudodosite1'
propria, 'conteudodosite2'


Isso é possível, senão vou ter que dar um jeito de criar N variáveis para acertar isso (deixar de uma maneira feia hahaha).


____________________________________________________________
Sim, é possível!!!
Só depende de quem executa!!!! Rsrsrsrs

Tudo que está "dentro do laço", Repete!!!!
Para entender o "mecanismo do script", coloque-o em "debug mode".

Por exemplo:
echo -e ".... INICIO ....\n"
for ((x=0;x<10;x++));do
echo "x:$x"
echo "..... 01 ....."
echo "..... 02 ....."
echo "..... 03 ....."
echo "..... 04 ....."
echo -e "..... 05 .....\n"

done
echo ".... FIM ...."
OBS.: No script acima, negrito = "DENTRO DO LAÇO"

Att.:
Marcelo



17. Re: Utilizar array ou variavel que receba varias strings (endereço de sites)

Kelvin
K3LV!N

(usa Outra)

Enviado em 24/05/2016 - 09:28h

Consegui, com essa sua ideia, demorei para entender, mas foi hahaha

Antes meu script:

while IFS=$'\n' read -r sitesproprios;do


lynx -justify -nolist -nomargins -nonumbers -dump "$sitesproprios" | sed '
s/\([A-Z]\)/\L&/g; s/[[:digit:]]//g; s/[[:punct:]]//g' > $sitesproprios.txt



wine stemmer_arquivo.exe $sitesproprios.txt
cat $sitesproprios.txt.stemmed > $sitesproprios.txt

#-------- SALVANDO A BASE .arff --------#
echo -e "@relation conteudoimproprios\n@attribute palavras {própria,impropria}
@attribute text String\n\n\n@data\npropria, $(cat "$sitesproprios".txt)" >> BaseDados.arff
done < sitesproprios.txt


Atual:


echo -e "@relation conteudoimproprios\n@attribute palavras {própria,impropria}
@attribute text String\n\n\n@data\n" > BaseDados.arff

while IFS=$'\n' read -r sitesproprios;do



lynx -justify -nolist -nomargins -nonumbers -dump "$sitesproprios" | sed '
s/\([A-Z]\)/\L&/g; s/[[:digit:]]//g; s/[[:punct:]]//g' > $sitesproprios.txt



wine stemmer_arquivo.exe $sitesproprios.txt
cat $sitesproprios.txt.stemmed > $sitesproprios.txt




#-------- SALVANDO A BASE .arff --------#
echo "propria, $(cat "$sitesproprios".txt)" >> BaseDados.arff
done < sitesproprios.txt






  
01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts