Re: [shell-script] Dica do Ivan - fazer barras horizontais de tamanho especifico usando sed
Baseado no Júlio tr -d '[0-9]' < <(seq -s= 10) -- Reinaldo de Carvalho http://korreio.sf.net 2008/6/7 Julio C. Neves <[EMAIL PROTECTED]>: > Outra forma: > Prompt> Tamanho=10 > Prompt> sed 's/[0-9]//g' <(seq -s= $Tamanho) > = > > Abraços, > julio > > 2008/6/7 Ivan lopes <[EMAIL PROTECTED]>: > >> objetivo: >> uma barra de tamanho 10 compasta pelo caracter '=' igual >> = >> 0123456789 >> >> algoritmo: >> >> >> label :__begin__ >> >> if strlen(linha) == 10 >> print linha >> then goto __end__ >> endif >> >> linha = linha + '=' >> >> goto __begin__ >> >> em sed: >> == >> $ echo | sed ':begin; >> s/^.\{10\}$/&/; >> tend; >> >> s/$/=/; >> tbegin; >> >> :end' >> >> ou inline: >> $ echo a | sed ':begin;s/^.\{10\}$/&/;tend;s/$/=/;tbegin;:end' >> >> -- >> []'s >> Ivan Carlos da Silva Lopes >> Engenheiro Eletrônico e de Computação >> blog --> http://lopesivan.blogspot.com/ >> >> > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > - > Esta lista não admite a abordagem de outras liguagens de programação, como > perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio > aviso. > - > Sair da lista: [EMAIL PROTECTED] > - > Esta lista é moderada de acordo com o previsto em > http://www.listas-discussao.cjb.net > - > Servidor Newsgroup da lista: news.gmane.org > Grupo: gmane.org.user-groups.programming.shell.brazil > > Links do Yahoo! Grupos > > >
Re: [shell-script] Procurar passagens mais baratas na Gol com Shell Script
Meus 2 cents.. # Belém->São Paulo 14/06/2008-19/06/2008 # tcpdump -nn -i eth0 -s 0 -A host 192.216.212.83 POST http://compre3.voegol.com.br/skylights/cgi-bin/skylights.cgi HTTP/1.1 Host: compre3.voegol.com.br User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.8.1.3) Gecko/20070310 Iceweasel/2.0.0.14 (Debian-2.0.0.14-1) Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: pt-br,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Proxy-Connection: keep-alive Referer: http://www.voegol.com.br/ Cache-Control: max-age=0 Content-Type: application/x-www-form-urlencoded Content-Length: 337 travel_type=on§or1_o=aBEL§or1_d=CGH§or_1_d=14§or_1_m=062008§or_2_d=19§or_2_m=062008&ADULT=01&CHILD=00&INFANT=0&b_search.x=70&b_search.y=18&b_search=procurar+v%F4os&mode=JURO&pT=00CHILD01ADULT&oP=&rP=&nom=2&m1=20080614BELCGH&m2=20080619CGHBEL&m1DP=0&m1DO=0&m2DP=0&m2DO=0&pM=0&tc=1&language=PT&module=SB&page=SELECT # São Paulo-> Porto Algre 14/06/2008-19/06/2008 travel_type=on§or1_o=aCGH§or1_d=POA§or_1_d=14§or_1_m=062008§or_2_d=19§or_2_m=062008&ADULT=01&CHILD=00&INFANT=0&b_search.x=63&b_search.y=12&b_search=procurar+v%F4os&mode=JURO&pT=00CHILD01ADULT&oP=&rP=&nom=2&m1=20080614CGHPOA&m2=20080619POACGH&m1DP=0&m1DO=0&m2DP=0&m2DO=0&pM=0&tc=1&language=PT&module=SB&page=SELECT # Porto Alegre->Curitiba 14/06/2008-19/06/2008 travel_type=on§or1_o=aPOA§or1_d=CWB§or_1_d=14§or_1_m=062008§or_2_d=19§or_2_m=062008&ADULT=01&CHILD=00&INFANT=0&b_search.x=64&b_search.y=10&b_search=procurar+v%F4os&mode=JURO&pT=00CHILD01ADULT&oP=&rP=&nom=2&m1=20080614POACWB&m2=20080619CWBPOA&m1DP=0&m1DO=0&m2DP=0&m2DO=0&pM=0&tc=1&language=PT&module=SB&page=SELECT -- Reinaldo de Carvalho http://korreio.sf.net 2008/6/9 João Souto Maior <[EMAIL PROTECTED]>: > Tiago/Celso, > > Acredito que se a gente usar algum sniffer fica mais fácil de encontrar oq > eh enviado no post, pois dependendo da forma que a página estiver escrita > fica muito complicado de achar isso. > > J > > 2008/6/8 Tiago Barcellos Peczenyj <[EMAIL PROTECTED]>: > >> Celso >> >> Essa é uma ideia SENSACIONAL, bastaria descobrir quais campos são >> submetidos através desse post e tratar a resposta, destacando os >> preços e ordenando, por exemplo. >> >> Vou dar uma estudada no assunto até pq isso me interessa, por hora >> posso sugerir este link: >> >> http://curl.haxx.se/docs/httpscripting.html >> >> Vai envolver sed / awk alem de curl e , talvez, sort, só tem que saber >> o que procurar e como, ai tem q olhar o html dessas paginas e rezar >> pra nunca mudar "de repente". >> >> 2008/6/8 Celso Viana <[EMAIL PROTECTED] >: >> > Tiago, >> > >> > É possível adaptar esse script para fazer uma pesquisa automática no >> > site de uma empresa aérea >> > (http://compre3.voegol.com.br/skylights/cgi-bin/skylights.cgi), para >> > encontrar o menor preço de passagem para um determinado intervalo de >> > tempo? >> > >> > Thanks >> > >> > -- >> > Celso Vianna >> > BSD User: 51318 >> > http://www.bsdcounter.org >> > >> > 63 8404-8559 >> > Palmas/TO >> > >> > >> >> -- >> Tiago B Peczenyj >> Linux User #405772 >> >> http://peczenyj.blogspot.com/ >> "what does not kill us makes us stronger" >> >> > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > - > Esta lista não admite a abordagem de outras liguagens de programação, como > perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio > aviso. > - > Sair da lista: [EMAIL PROTECTED] > - > Esta lista é moderada de acordo com o previsto em > http://www.listas-discussao.cjb.net > - > Servidor Newsgroup da lista: news.gmane.org > Grupo: gmane.org.user-groups.programming.shell.brazil > > Links do Yahoo! Grupos > > >
Re: [shell-script] Inverter sequencia de caracteres de um String
On 6/10/08, Petry <[EMAIL PROTECTED]> wrote: > Bom dia, > > Tenho uma sequência de caractares alfanuméricos invertidos da seguinte > forma: > > BADCFEHG > > E quero transforma-lo em: > > ABCDFEGH > Ou esse não foi um bom exemplo, ou voce esta tentando trocar 2 com 1, 4 com 3, etc.. usando a dica do Eri... fold -w 2 <<< BADCFEHG | rev | tr -d '\n' -- Reinaldo de Carvalho http://korreio.sf.net
Re: [shell-script] Problemas com Sed e "Ou"
> > `cat zrpReport.out | sed -e 's/(IDKFA|XYQ|XBBQ|\.log)//g'` # PROBLEMA > > O problema se dá na hora do sed, que não está processando o "ou" > $(sed -re 's/(IDKFA|XYQ|XBBQ|\.log)//g' zrpReport.out) você precisa escapar os parenteses ou usar -r. -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] Passar parâmetro separados por espaço
> i=1 > for LIST in `echo "$1" | cut -d" " -f$i`; do > echo $LIST <-- apenas para debug. > SIP_$i=$LIST > i=`expr $i + 1` > done > Problemas de lógica... - Não proteja os parametros com aspas. - Use vetor i=0 for item in $@; do SIP[i]=item done Se você precisa usar outros parâmetros, passe antes: OPT1=$1 OPT2=$2 OPT3=$3 shift 3 i=0 for item in $@; do SIP[i]=item done echo Arg1: $OPT1 echo Arg2: $OPT2 echo Arg3: $OPT3 echo -n "List: " i=0 while [ ${SIP[i]} ]; do echo -n "${SIP[i]} " let i++ done echo ex: ./tt.sh server port crypt a b c d e -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] conversao de dados em arquivo de usuarios
> > > > Carlos;Vinicius;carlos.vinicius;12345;Carlos José Vinicius > > Carlos;Vinicius;carlos.vinicius;12345;Carlos Henrique Vinicius > > Carlos;Vinicius;carlos.vinicius;12345;Carlos Euler Vinicius > > Joao;Silva;joao.silva;12345 > > > > arquivo desejado: > > Carlos;Vinicius;carlos.vinicius;12345 > > Joao;Silva;joao.silva;12345 > > cut -f1-4 -d\; < arquivo | uniq -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] conversao de dados em arquivo de usuarios
> > > > > > Carlos;Vinicius;carlos.vinicius;12345;Carlos José Vinicius > > > Carlos;Vinicius;carlos.vinicius;12345;Carlos Henrique Vinicius > > > Carlos;Vinicius;carlos.vinicius;12345;Carlos Euler Vinicius > > > Joao;Silva;joao.silva;12345 > > > > > > arquivo desejado: > > > Carlos;Vinicius;carlos.vinicius;12345 > > > Joao;Silva;joao.silva;12345 > > > > > Sem o menor.. cut -f1-4 -d\; arquivo | uniq -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] Problemas em Loop While
> > --- > cat lista.txt | while read ARQ > do > > ssh [EMAIL PROTECTED] carrega.sh $ARQ > > done > Tanto o script carrega.sh quanto o arquivo passado como parametro estão no "servidor". Este comando ssh loga no referido servidor e executa o comando "carrega.sh /arquivo/tal" e então desloga. O script carrega.sh que esta no servidor recebe um arquivo como primeiro parâmetro ($1) e faz alguma coisa. -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] Array em shell script
> Olá pessoal gostaria de saber como faço para varrer um vetor buscando > uma ocorrencia. > > tenho uma variavel "v" e quero saber se ela está contida em um vetor > predefinido por mim... > i=0 while [ ${VET[i]} ]; do test ${VET[i]} == ${v} && echo Vetor contem valor de v. let i++ done -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] Determinar o tipo MIME do arquivo
> > Alguem conhece algum aplicativo que não dependa de ambiente gráfico > para me retornar o MIME type de um arquivo? > file arquivo -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] RegExr para converter variável em formato CNPJ
> > Eu tenho uma variável chamada $ZCNPJ, com valor: 12345678901234. > > Preciso de uma Expressão Regular para converter o conteúdo dessa variável no > formato CNPJ como o seguinte: > XX.XXX.XXX/-XX (sendo que cada X representa um digito). > x=12345678901234 echo ${x:0:2}.${x:2:3}.${x:5:3}/${x:8:4}-${x:12:2} 12.345.678/9012-34 -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] Gerando saida texto...
> >for teste in `cat /root/maquinas-ligadas`; do > fgrep -i $teste /home/todas-as-maquinas > done > arquivo.txt > -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] Alterando nomes de arquivos com caracteres especiais
> > Bem, uma solução para recuperar os arquivos, a partir do Linux, seria > gravar os dados do D: (hda2) para um diretório qualquer (p.e. > /home/d), mas como os arquivos acentuados aparecem com o caracter "?", > que é um coringa, não consegui copiar/mover. > Você não tem que renomear os arquivo, mas sim corrigir a codificação do terminal. -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] Re: Alterando nomes de arquivos com caracteres especiais
> > Creio que o problema está em não conseguir gravar no sistema > de arquivo. E não adianta chmod 777 -R porque isso eu já tentei. > > É uma partição NTFS e quando instalei o Debian 4, ela se transformou em > HTFS e aí começou meu drama. No Windows a letra D: da partição até aparece, > mas não vejo os dados. No Linux eu consigo montar, ler e até copiar, mas > esses > arquivos com acentuações (que aparecem para mim com um "?") o sistema > não "entende". Por isso estou tentando mudar seus nomes. > > Mas o "?" não significa que é uma interrogação: pode ser um cedilha ou um til > ou qualquer outro símbolo destes. > > Tanto é que no bash, ao tentar copiar, aparece contra-barra seguida de um > número ao > invés da interrogação. Percebi que os números são diferentes, ou seja, são > outros símbolos. > No Nautilus , aparece um losango preto com uma interrogação dentro. > > Creio que o caminho será reconfigurar o sistema de arquivo NTFS. > Você esta usando codificação errada no console, altere para a mesma usada pelo windows que os caracteres apareceram corretamente. -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] formatação de uma variável
On 9/12/08, miranda <[EMAIL PROTECTED]> wrote: > Pessoal , estou com um problema me pegando aqui. > É o seguinte . > Tenho uma variável recebendo um número arbitrário de strings > separadas por um branco > Para fixar idéias , digamos que sejam ip's : > por exemplo a variável IP contém > IP=200.156.3.4 200.197.56.32 10.34.89.210 > Como posso fazer para que essa varíável se no primeiro campo for menor > que 15 caracteres , para que tenha 15 caracteres acrescentando brancos ? > Repesentando os brancos por b , ficaria > IP=200.156.3.4200.197.56.32 10.34.89.210 > Qual o problema que você quer resolver? Aparentemente a sua lógica esta ruim. -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] Variáveis com apóstrofos II
> > vlc -vvv input_stream --sout > '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}: > rtp{mux=ts,dst=239.255.12.42,sap,name="TestStream"}' > > No arquivo de configuração, armazeno todos os parâmetros que serão > passados para o VLC. > > CONFIG="-vvv input_stream --sout > '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}: > rtp{mux=ts,dst=239.255.12.42,sap,name="TestStream"}' " > As aspas simples estão ai para que os caracteres especiais não sejam interpretados (ex: {}"). Mas o programa não espera recebe-las. # xx () { echo $1:$2:$3 ; } # xx a b c a:b:c # z="a b c" # xx $z a:b:c Aqui esta o problema... o c foi recebido pelo programa com aspas: # z="a b 'c'" # xx $z a:b:'c' idem... # z="a b '#c'" # xx $z a:b:'#c' # z="a b #c" # xx $z a:b:#c O que normalmente acontece é: # xx a b 'c' a:b:c Então... CONFIG="-vvv input_stream --sout #transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:rtp{mux=ts,dst=239.255.12.42,sap,name=\"TestStream\"}" /sbin/startproc vlc $CONFIG A unica restrição é que não pode haver espaços (nem com \ ) nos argumentos. Caso seja necessário podes usar duas variáveis. CONF1="-vvv input_stream --sout" CONF2='#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}: rtp{mux=ts,dst=239.255.12.42,sap,name="TestStream"}' /sbin/startproc vlc $CON1 "$CONF2" -- Reinaldo de Carvalho http://korreio.sf.net (Now available in English) http://python-cyrus.sf.net
Re: [shell-script] função extract
2009/2/3 Guilherme Gall : > 2009/2/3 voyeg3r : > > #!/bin/bash > > extract(){ > for file in "$@"; do > if [ -f "$file" ]; then > case "$file" in >*.tar.bz2) tar xvjf "$file";; >*.tar.gz) tar xvzf "$file";; >*.bz2) bunzip2 "$file";; >*.rar) rar x "$file";; >*.gz) gunzip "$file";; >*.tar) tar xvf "$file";; >*.tbz2) tar xvjf "$file";; >*.tgz) tar xvzf "$file";; >*.zip) unzip "$file";; >*.Z) uncompress "$file";; >*.7z) 7z x "$file";; >*) echo "não sei como extrair '$file'...";; > esac > else > echo "'$file' não é um arquivo válido" > fi > done > } > > # Fim do script Fora que da pra unir essas opções: *.tar.bz2|*.tbz2) tar xvjf "$file";; *.tar.gz|*.tgz) tar xvzf "$file";; *.bz2) bunzip2 "$file";; *.rar) rar x "$file";; *.gz) gunzip "$file";; *.tar) tar xvf "$file";; *.zip) unzip "$file";; *.Z) uncompress "$file";; *.7z) 7z x "$file";; *) echo "não sei como extrair '$file'...";; -- Reinaldo de Carvalho http://korreio.sf.net (Now available in English) http://python-cyrus.sf.net
Re: [shell-script] Mover blocos de bits
2009/3/10 Gmail : > boas pessoal > > Tenho um arquivo em hexadecimal com esta formatação > > 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 AA CC > 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 01 BA CC > 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 01 02 CA CC > 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 01 02 AA CC > 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 01 02 CA AB > 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 AA DD > 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 01 BA DD > 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 01 02 CA DD > 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 01 02 AA DD > 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 01 BA CD > 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 01 02 CA EF > 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 01 BA 15 > 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 01 02 CA 20 > A visão de um arquivo em hexadecimal não possui o conceito de "linhas" nem de "formatação". Estes caracteres são ASCII ou são binários? Vou considerar que são binários pois você disse "arquivo em hexadecimal". > Eu preciso mover para outros arquivos solo as blocos entre as linhas com > o bit 19 e em este exemplo AA > Parece-me que você quer os bytes (e não bits) 1 ao 80 no primeiro arquivo e 101 a 180 no segundo arquivo? > arquivo primeiro > 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 AA CC > 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 01 BA CC > 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 01 02 CA CC > 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 01 02 AA CC > > arquivo segundo > 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 AA DD > 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 01 BA DD > 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 01 02 CA DD > 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 01 02 AA DD > > Testei com varias formas do sed, mais não solucionei, alguma ajuda? > cut -c1-80 arquivo > arquivo-primeiro cut -c100-180 arquivo > arquivo-segundo para evitar a quebra de linha gerada pelo cut (0a) echo $(cut -c1-80 arquivo) > arquivo-primeiro echo $(cut -c100-180 arquivo) > arquivo-segundo -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] Mover blocos de bits
2009/3/11 Reinaldo de Carvalho : > > cut -c1-80 arquivo > arquivo-primeiro > cut -c100-180 arquivo > arquivo-segundo > > para evitar a quebra de linha gerada pelo cut (0a) > > echo $(cut -c1-80 arquivo) > arquivo-primeiro > echo $(cut -c100-180 arquivo) > arquivo-segundo > Pressa... faltou o -n... echo -n $(cut -c1-80 arquivo) > arquivo-primeiro echo -n $(cut -c100-180 arquivo) > arquivo-segundo -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] Mover blocos de bits
2009/3/11 Reinaldo de Carvalho : > 2009/3/11 Reinaldo de Carvalho : >> >> cut -c1-80 arquivo > arquivo-primeiro >> cut -c100-180 arquivo > arquivo-segundo >> >> para evitar a quebra de linha gerada pelo cut (0a) >> >> echo $(cut -c1-80 arquivo) > arquivo-primeiro >> echo $(cut -c100-180 arquivo) > arquivo-segundo >> > > Pressa... faltou o -n... > > echo -n $(cut -c1-80 arquivo) > arquivo-primeiro > echo -n $(cut -c100-180 arquivo) > arquivo-segundo > > Estranho... quase perfeito, o interessante é que o cut trocou o '09' por '20' sem nenhum motivo aparente. r...@water:~$ echo -en '\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\xaa\xbb\xcc\x01\x02' > x r...@water:~$ hd x 01 02 03 04 05 06 07 08 09 10 aa bb cc 01 02 |...| 000f r...@water:~$ echo -n $(cut -c1-11 x) > x2 r...@water:~$ hd x2 01 02 03 04 05 06 07 08 20 10 aa | ..| 000b -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] Otimização de código
2009/4/3 Jeiks : > Olá povo, > estava precisando pegar o device de vídeo das máquinas e, caso fosses > unichrome ou via, trocar o nome do driver para vesa. > Bom... consegui, mas tá feio de ver.. hehe > Gostaria de ajuda para melhorar o código. > > abração Como assim 'trocar'? trocar no xorg.conf ? Simplesmente use o sed com expressao específica, se nao bater ele nao irá trocar. Assim você não precisa comparar pra trocar, apenas tente trocar diretamente. -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] automatizando instalação
2009/4/11 Anderson Duarte : ... > > #!/bin/bash > > echo "http://seu.repositorio.de.terceiros.aqui"; >> /etc/apt/sources.list > > apt-get update > apt-get upgrade > apt-get -y install pacote1 pacote2 pacote3... > > > Pronto, creio que isso resolva a parte da instalação, mas deixo pra voce a > seguinte dica: No Debian, mesmo voce assumindo YES para tudo (-y) vai chegar > uma hora que o DPKG vai te jogar algumas telas com perguntas pra vc > responder. (aquela telinha azul usando o Dialog) o dpkg pega estas > informações e joga depois no arquivo .conf do pacote que vc acabou de > instalar. % Desligar as perguntas do debconf (vulgo telinhas do dpkg): # echo "debconf debconf/priority select critical" > /tmp/debconf.critical # debconf-set-selections /tmp/debconf.critical % Instalação dos pacotes # apt-get update # apt-get upgrade # apt-get -y install pacote1 pacote2 pacote3... % Ligar as perguntas do debconf (vulgo telinhas do dpkg): # echo "debconf debconf/priority select high" > /tmp/debconf.high # debconf-set-selections /tmp/debconf.high -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] Parentesco de um processo?
On Mon, Apr 20, 2009 at 10:29 PM, Alain M. wrote: > > Preciso saber se um determinado processo (PID2=123) é filho de um outro > (PID1=122) > > Tem como listar os pids pais ou filhos, ou seja lá com fôr para > conseguir tal informação??? > > grato, > Alain > O velho e bom hábito de unix: # ps -ef -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] Ler e Escrever - USB serial
2009/4/20 Alain M. : > provavelmente você abortou o picocom e deixou o lock... > > A a maioria dos recursos no Linux têm travamentos assim, enm sempre é > muito fácil descobrir onde os arquivos lock ficam para poder eliminálos > nos scripts... > > a maneira correta de sair so picocom é Control+A Ctrl+X, onde Ctrl+A é > chamado de Escape-char, ou seja caracter de comando, e X para Exit. pode > também usar picicom com --nolock > > Todos os terminais tem comandos assim.. não tem jeito porque é para > evitar conflito com a aplicação. > > Alain > Na minha opinião pode não ser questão de lock, mas de entender que um hardware tem estados, basicamente "lendo" e "escrevendo" sobre um buffer. E enquanto a operação não é concluida, ele fica ocioso. Normalmente quando o aplicativo do usuário escreve no device (no buffer) o hardware processa isto, e devolve uma informação ao buffer, ao qual pode ser lido. Mas vamos imaginar o primeiro passo, de escrita no buffer via device, a questão é "quando" o hardware vai processar, pode ser de caracter a caracter, de quebra de linha a quebra de linha, isto depende da especificação do hardware, e enquando esta 'trigger' não disparada o hardware não processará e pode não ser possível efetuar a operação de leitura (via cat). A questão é enquanto uma operação esta sendo realizada, o hardware esta aguardando uma situação que ativa o processamento. É provavel que um simples "echo > /dev/ttyUSB0" dispare o processamento do hardware, e possa novamente ser acesso pelo "cat", mas se isso não funcionar, a especificação da comunicação deve ajudar. O shell não tem recursos de alto nível para comunição com hardware, por exemplo: - muitos protocolos necessitam sequencias binárias, o que daria trabalho a mais com o 'echo'. - o cat não suporte a 'timeout' o que é necessário para identificar que o hardware não esta respondendo, provavelmente pois o processamento do buffer ainda não foi disparado, levando a escrita da mais códigos para esse controle Uma simulação de timeout... cat /dev/ttyUSB0 & bg i=0 while true; do jobs | grep -q cat || break let i++ if [ "$i" -eq 10 ] ; then killall -9 cat >/dev/null 2>&1 echo 'Nao pude ler do device.' break fi sleep 1 done Nesse caso, não havia nada no buffer do hardware ou o hardware não permitiu a leitura, tendo que tentar disparar o processado do hardware sobre o conteudo do buffer, que como disse, dependendo do hardware pode ser "echo > /dev/ttyUSB0". Na minha opinião, usar shell para interagir com hardware é muito mais trabalhoso do que outras linguagens que possuem funções/métodos disponíveis para acesso ao hardware, como python. Ps: o Júlio leu minha mente quando eu me referi ao "ps -ef". ;) -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] Trocar : por . em nomes de arquiv os de um diretório
2009/5/5 Leonardo : > Olá, > > Tenho um diretório que tem vários arquivos com : em algum lugar do nome. > Esses arquivos são de nomes longos, com espaços separando as palavras. Ex.: > "Nome: do arquivo.pdf". > > Eu tentei mudar o caracter fazendo um for e usando tr, mas não funcionou > porque o for i in `ls` itera em cima de cada palavra dos nomes do arquivos. > Gostaria de saber como posso fazer para trocar o nome de cada arquivo que > contenha ":" em um diretório, e trocar o ":" por ".". > while read arquivo ; do [[ "${arquivo}" =~ : ]] && echo mv "${arquivo}" "${arquivo/:/.}" done < <(ls) * remova o echo se exibir corretamente. -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] exercicios para quem estah comecando
2009/5/7 Marcelo Andrade : > Olá! > > Pretendo montar um curso de shell de 25h para uma turma de alunos > e gostaria de sugestões sobre exercícios, indo desde o basiquinho > até as tarefas mais complexas para ir abordando ao longo do > curso. > > A turma é bastante heterogênea, então devo começar nivelando > por baixo, e o curso deve ser voltado para administração de > sistemas. Então ao final devo abordar coisas como cron, envio > de email, backups, etc. > > Gostaria de dicas sobre exercícios. Se alguém tiver sugestões que > possa compartilhar, eu agradeceria bastante. > > Atenciosamente. > Exercícios bons são os interessantes, algumas sugestões: - Converter LDIF para CSV - Converter CSV para LDIF - Converter MBOX para MAILDIR - Converter MAILDIR para MBOX - Renomer mensagens (EMLs) para formato CYRUS-MAILDIR - Gerar um arquivo com todos os endereços de email separados por vírgula a partir de uma base LDAP - Converter CSV para SQL para inserção em MySQL/PostGreSQL - Converter SQL para SQL em um banco com estrutura de tabelas diferentes. (ex: migrar alguns campos do catálogo de endereços do HORDE/IMP para ROUNDCUBE) Tipicamente, conversão de dados. -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] Arrumar nomes de arquivos com caracter "\372"
2009/5/12 César Vianna : > *Dúvida direta:* > Como usar o sed para alterar o caracter de codificação inválida que aparece > como "?" e tem código "\372" > Consegui com > tr "\372" "-" <<< $variavel > Queria fazer com sed > Bem, eu não chamaria de codificação inválida, mas de codificação diferente do padrão do seu terminal. while read line; echo mv "$line" "$(iconv -f iso-8859-1 -t utf-8 <<< $line)" done < <(ls) > *Motivo:* > Corrigir nomes de arquivos no Ubuntu > A maioria dos problemas resolvi com o Funções ZZ (zarrumanome) - > http://funcoeszz.net > Só que falta um caracter inválido "?" que não consegui corrigir... Então > quero inserir na função e ela utiliza sed > > Ex: > 2008-05-30 22:29 N?o S?o Paulo 2 > > A forma mais interessante é via rsync, pesquise no histórico. -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net
Re: [shell-script] Shell Script + bit setuid??? Algu ém me explica o porque do erro!
2009/7/17 andredeo : > Pessoal Boa Tarde, > > Depois de quebrar a cabeça, googlar, ver o histórico da lista... (Enfim fiz a > lição de casa), peço ajuda > > To tentando montar um exemplo de uso do setuid. Vejam a lógica da coisa: > * - Criei um arquivo teste.txt (touch /teste.txt) > * - Um script tosco: > #!/bin/bash > > echo "Ola" >> /teste.txt > > * - Como root executo o script blza; > * - Como usuario ele diz que o teste.txt não pode ser escrito, perfeito; > * - chmod u+s teste.sh > * - ls -lasF teste.sh > 4 -rwsr-xr-x 1 root root 38 Jul 17 15:10 teste.sh* > * - Ficou a permissão perfeita; > * - Em tese quando eu chamar este script logado com usuario, ele sera > executado como root e eu vou conseguir escrever no arquivo; MAS: > # su - linux > $ cd / > $ ./teste.sh > ./teste.sh: line 3: /teste.txt: Permissão negada > > Idéias de como usar Shell Script + bit setuid??? > Algum outro exemplo para que eu possa testar??? > > Detalhe que, imagino que tenha reproduzido o mesmo caso que consta aqui: > http://www.dicas-l.com.br/dicas-l/19970419.php > 25 Mar 2006: http://www.mail-archive.com/shell-script@yahoogrupos.com.br/msg01576.html 21 Jan 2007: http://www.mail-archive.com/shell-script@yahoogrupos.com.br/msg05272.html 04 Jul 2007: http://www.mail-archive.com/shell-script@yahoogrupos.com.br/msg06855.html -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net "Don't try to adapt the software to the way you work, but rather yourself to the way the software works" (myself)
Re: [shell-script] Shell Script + bit setuid??? Algu ém me explica o porque do erro!
2009/7/20 André Luis Boni Déo : > Reinaldo, > Obrigado pelas mensagens, eu procurei direto no histórico do yahoo > groups e não me lembro de ter lido o primeiro link que me passou, as > outras eu tinha lido, mas queria saber o porque não funciona... Que já > foi respondido no 1º link e também pelo Flávio... > Devagando... Em linguagens interpretadas o interpretador é executado e lê o programa (scripts). Na prática você esta executando /bin/bash (ou outro interpretador qualquer) e não o seu script. Ou seja, é semelhante a idéia do "openoffice abir um .odt". Dessa forma, para isso funcionar (especulando) dependeria do SUID no '/bin/bash', e o bash deveria fornecer uma chamada interna (build-in como local, if, while, trap) para prover a funcionalidade de setuid. Mas parece-me inviável usar SUID no /bin/bash, e não creio que ele atualmente implemente tal funcão. Ou seja, não basta o SUID esta ativado, depende de código extra para acessar a chamada de sistema que faz o setuid. -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net "Don't try to adapt the software to the way you work, but rather yourself to the way the software works" (myself)
Re: [shell-script] Re: Formatar Resultado
2009/7/21 jsca...@ymail.com : > Caros colegas acho que não fui muito especifico no que eu quero. > A solução que estou atrás é a segunte, tenho um arquivo com algumas colunas e > quero que a coluna independente de tamanho fique uma em baixo da outra e na > mesma posição de cada coluna. > > Jamilson Silva -- 3624-9635 > Janderson Silva -- 3625-2563 > Teste -- 4125-5241 > > Com as dicas dadas, você devia ter estudado e feito: # COL='\\033[30G' # echo -e "$(sed -re "s/(.*)--(.*)/\1"${COL}"--\2/g" arquivo.telefone)" Jamilson Silva -- 3624-9635 Janderson Silva -- 3625-2563 Teste-- 4125-5241 # echo -e "$(sed -re "s/--/${C30}--/" arquivo.telefone)" Jamilson Silva -- 3624-9635 Janderson Silva -- 3625-2563 Teste-- 4125-5241 -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net "Don't try to adapt the software to the way you work, but rather yourself to the way the software works" (myself)
Re: [shell-script] Argument list too long
2009/9/15 Adriano Nunes : > E ai Galera! > > Bom vamos lá, estou tendo problemas ao rodar o seguinte comando dentro do meu > script: > > su cyrus -c "(/usr/sbin/ipurge -d200 -f user/*/Spam)" > > Esse comando ele remove mensagens de SPAM da caixa postal do usuário, mas > devido o diretorio /user ter vários diretorios e arquivos dentro gera o erro: > Argument list too long > > Será que alguém pode me ajudar, tentei utilizar o xargs mas sem sucesso. > > Obrigado galera! > Bem, o próprio cyrus pode fazer isso automaticamente, basta você configurar a annotation /vendor/cmu/cyrus-imapd/expire para estas caixas postais (Spam). $ cyradm --user cyrusadmin localhost > mboxcfg user/*/Spam expire 200 > mboxcfg user/*/s...@example.net expire 200 > mboxcfg user/*/s...@example.org expire 200 > > info user/x/s...@example.net} {user/x/s...@example.net}: expire: 200 lastpop: lastupdate: 20-Sep-2009 20:38:24 -0300 partition: default size: 0 Sobre o seu script, verifique se o ipurge tem suporte a expandir o '*' ao invés do BASH: # su cyrus -c "(/usr/sbin/ipurge -d200 -f user/\*/Spam)" OFF-TOPIC: talvez isto lhe interesse: http://python-cyrus.sf.net http://korreio.sf.net -- Reinaldo de Carvalho "Don't try to adapt the software to the way you work, but rather yourself to the way the software works" (myself)
Re: [shell-script] Res.: Inclusão de cadeia de cara cteres numa posição dentro de um arq
2009/10/3 Julio C. Neves : > Isso me cheira a sed: > > $ sed -r 's/^(.{33})(.*)/\1xXxXxX\2/' /caminho/do/arquivo > Oi Júlio, precisa do ^? Não vi situação que deixe de funcionar sem o ^. -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net "Don't try to adapt the software to the way you work, but rather yourself to the way the software works" (myself)
Re: [shell-script] Testar primeiro caracter de uma string
2010/3/23 gleissonmb : > > Objetivo: Listar todos arquivos que iniciem com a letra "g". > > Ex: > Estou listando os arquivos assim: > # for i in `cat< <(ls)` /home/ > ls g* -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net "Don't try to adapt the software to the way you work, but rather yourself to the way the software works" (myself)
Re: [shell-script] Script entrar no diretório - Ser á que fiquei louco????
2010/4/13 André Déo : > [r...@localhost /]# cat entra.sh > #!/bin/bash > cd /root > [r...@localhost /]# pwd > / Seu script esta sendo executado como um novo processo, após finalizado o mesmo e encerrado e o prompt retorna ao shell inicial. -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net "Don't try to adapt the software to the way you work, but rather yourself to the way the software works" (myself)
Re: [shell-script] Parse de arquivo de configuracao
2010/4/23 Carlos Eduardo Tavares Terra : > Caros, > > estou precisando preparar um script que facilite a vida de alguns > operadores. O script em si irá alterar um determinado arquivo de > configuração. > > O formato do arquivo de configuração é o seguinte: > > classe k { > var1 x; > var2 y; > var3 { > var4 z; > var5 j; > info { > abc; > }; > }; > }; > Alterar 'que' parte 'por qual' conteúdo? Mostre também o inicial e como deseja que fique, assim como suas tentativas. -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net "Don't try to adapt the software to the way you work, but rather yourself to the way the software works" (myself)
Re: [shell-script] Limpando lixo de executável
2010/5/3 Alain Mouette : > Realmente tirou, mas não resolve meu problema: > PacMan, o tr do coreutils não tem -u, nem como não buferizar... > > Foi exatamente por isso que eu perguntei na lista :) se eu faço um pipe > pequeno ele só processa no final :( > > Mais alguma sugestão??? > > Alain > programa | sed 's/\x08//g' sed 's/\x08//g' < <(programa) ;) -- Reinaldo de Carvalho http://korreio.sf.net http://python-cyrus.sf.net "Don't try to adapt the software to the way you work, but rather yourself to the way the software works" (myself)
Re: [shell-script] FTP mv
use o "ls" no ftp, processe a saida com o padrão do usuário, e gere um comando mv para cada arquivo. -- Reinaldo Carvalho
Re: [shell-script] FTP mv
provavelmente ele quis dizer "rename" -- Reinaldo Carvalho 2008/2/8 Tiago Barcellos Peczenyj <[EMAIL PROTECTED]>: > 2008/2/8 Reinaldo de Carvalho <[EMAIL PROTECTED]>: > > use o "ls" no ftp, processe a saida com o padrão do usuário, e gere um > > comando mv para cada arquivo. > > Putz, só agora vi q é o mv do ftp (e não do shell) > > O que é novidade para mim. Q versão é essa? > > -- > Tiago B Peczenyj > Linux User #405772 > > http://peczenyj.blogspot.com/ > "what does not kill us makes us stronger" > > > - > Esta lista não admite a abordagem de outras liguagens de programação, como > perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio > aviso. > - > Sair da lista: [EMAIL PROTECTED] > - > Esta lista é moderada de acordo com o previsto em > http://www.listas-discussao.cjb.net > - > Servidor Newsgroup da lista: news.gmane.org > Grupo: gmane.org.user-groups.programming.shell.brazil > > > Links do Yahoo! Grupos > > >
Re: [shell-script] selecionar parte final de uma linha após delimitador
Meus 2 centavos.. NOME=http://www.site.com.br/controle/interno/patio/deposito/03_01_2008_21_18.avi [EMAIL PROTECTED]:~$ basename $NOME 03_01_2008_21_18.avi -- Reinaldo Carvalho
Re: [shell-script] como delatar uma sequencia de palavras num arquivo de 436 linhas
cut -f2 -d= arquivo -- Reinaldo Carvalho
Re: [shell-script] como delatar uma sequencia de palavras num arquivo de 436 linhas
Melhor... cut -f2- -d= arquivo 2008/2/26 Reinaldo de Carvalho <[EMAIL PROTECTED]>: > cut -f2 -d= arquivo > > > -- > Reinaldo Carvalho > -- Reinaldo Carvalho
Re: [shell-script] Script de consulta LDAP lento
> > # testa se o email contido em emails.txt está no ldap (atributo sn). A linha > numEntries só é exibida pelo LDAP quando o registro é encontrado. > > for i in `cat emails.txt` > do > ldapsearch -x sn=$i|if grep numEntries; then echo > /dev/null; else > echo $i >> nao_existe.txt; fi > done Porque os emails estão no sn? (sn é surname, ou seja, sobrenome) ldif=$(ldapsearch -LLL -x) while read line; do echo -e "$ldif" | grep -q mail=$line && echo $line done < emails.txt -- Reinaldo Carvalho
Re: [shell-script] Remover 3 linhas referentes a uma determinada referencia
Solução padrão das aulas de portugol da tia maria do maternal :P O algoritmo é feio pois a padronização usada foi ineficiente. #!/bin/bash flag=False while read line ; do if [ $flag == 'True' ] ; then if [ -z "$line" ] ; then flag=False echo else echo \# $line fi else echo $line fi if [ "$line" == "$1" ] ; then flag=True fi done < x.txt [EMAIL PROTECTED]:~$ ./tt.sh '# Cliente B' # Cliente A iptables xx xx iptables xx xx # Cliente B # iptables xx xx # iptables xx xx # Cliente C iptables xx xx iptables xx xx -- Reinaldo Carvalho On 4/22/08, xiss_break <[EMAIL PROTECTED]> wrote: > Olá pessoal, gostaria de obter a ajuda de voces com referencia a um > determinado problema, exemplo: > > # Cliente: A > iptables -A wireless -s 192.100.100.3 -m mac \ > --mac-source 00:00:00:00:00:00 -j RETURN > > Bom, preciso criar um script que receba o nome de um determinado > cliente e faça a busca em um arquivo buscando referencia a este > cliente (# Cliente: A) e logo que encontrar comente a 2 próximas > linhas. Deixando claro que essa referência pode de repetir no mesmo > arquivo e nesse caso todas as 2 próximas linhas também devem serem > comentadas. > > > Desde já agradeço a vocês. > > > > > - > Esta lista não admite a abordagem de outras liguagens de programação, como > perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio > aviso. > - > Sair da lista: [EMAIL PROTECTED] > - > Esta lista é moderada de acordo com o previsto em > http://www.listas-discussao.cjb.net > - > Servidor Newsgroup da lista: news.gmane.org > Grupo: gmane.org.user-groups.programming.shell.brazil > > Links do Yahoo! Grupos > > > http://sourceforge.net/projects/korreio http://sourceforge.net/projects/kontroller http://sourceforge.net/projects/phptcadmin http://sourceforge.net/projects/python-cyrus
OFF-TOPIC Re: [shell-script] envio de e-mail via linha de comando
2008/4/22 Elvio Barbalho <[EMAIL PROTECTED]>: > Resolvido o problema esta no gmail, quando abrir o e-mail no thunderbird > consegui visualizar corretamente o anexo. O problema não esta no Gmail, você não pode simplesmente colar um texto em base64 e querer chamar isso de anexo. Você precisa olhar o codigo de e-mails com anexo e verificar que existe o cabeçalho: Content-Type: multipart/mixed; boundary="0-1917243955-1091469849=:7321" que possui uma marcação utilizada antes e depois do anexo codificado em base64. -- Reinaldo Carvalho http://sourceforge.net/projects/korreio http://sourceforge.net/projects/kontroller http://sourceforge.net/projects/phptcadmin http://sourceforge.net/projects/python-cyrus
Re: [shell-script] GoTo em shell
> Ontem eu li este post interessante: > > http://blog.stiod.com.br/?p=80 > > Achei a ideia sensacional, pena que o script é em Python. Não que a > linguagem seja ruim mas isso me obriga a ter esse interpretador > instalado. Pior: o script é muito interativo, sinto falta de algumas > opções de linha de comando. > Olá Tiago, normalmente eu utilizo o ctrl+r no bash para pesquisar comandos no history. [EMAIL PROTECTED]:~$ (reverse-i-search)`ssh': ssh [EMAIL PROTECTED] -L :10.15.1.19:22 Neste caso, dei ctrl+r e escrevi ssh, se não foi o comando desejado, basta ir apertando ctrl+r que ele pesquisa em backward o comando contendo com "ssh", nesse momento, também é possível dar ctrl+s para ele pesquisar em forward. -- Reinaldo Carvalho http://korreio.sf.net
Re: [shell-script] Mudar bytes exatos em binario
> Por exemplo: > > $ echo -en "\x01\x02\x03\x04\x05\x06\x07\x08" > arq.bin > > Agora gostaria de mudar os bytes 0x04 0x05 e 0x06 por qualquer outra > coisa (\x00\x00\x00 por exemplo). sed -i 's/\x04/\x00/' arq.bin -- Reinaldo Carvalho http://korreio.sf.net
Re: [shell-script] Mudar bytes exatos em binario
On Sun, May 18, 2008 at 5:00 PM, Maycon Maia Vitali <[EMAIL PROTECTED]> wrote: > Fala Reinaldo, > > Na verdade gostaria de mudar em uma determinada posição e não um valor > especifico. > [EMAIL PROTECTED]:~$ hd arq.bin 01 02 03 04 05 06 07 08 || [EMAIL PROTECTED]:~$ sed -e 's/\(...\)./\1\x09/' arq.bin | hd 01 02 03 09 05 06 07 08 || [EMAIL PROTECTED]:~$ sed -e 's/\(\)./\1\x09/' arq.bin | hd 01 02 03 04 09 06 07 08 || [EMAIL PROTECTED]:~$ sed -e 's/\(.\)./\1\x09/' arq.bin | hd 01 02 03 04 05 09 07 08 || Para ficar automatico, deixo pra você gerar a quantidade de pontos... :) -- Reinaldo Carvalho http://korreio.sf.net
Re: [shell-script] Escrevendo em aplicativo usando shell
> rodaria um shell chamado > $ ./mensagem.sh > > apos fazer isso o vim seria aberto e escreveria a mensagem > "Ola! Mundo" dentro dele. > echo "Ola! Mundo" > /tmp/text.tmp ; vi /tmp/text.tmp Que besteirol.. :P -- Reinaldo Carvalho http://korreio.sf.net