The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
leia lista de ficheiros de arquivo de texto e remover esses arquivos em vários diretórios fxvisions Programação Shell Script e 5 08-07-2008 04:59
leia lista de ficheiros a partir de arquivo texto, arquivo, e remova fxvisions Programação Shell Script e 5 03-20-2007 09:56
leia uma parte do arquivo da lista no script happyv Programação Shell Script e 3 10-20-2006 10:58
ler uma lista de uma vez nortypig Programação Shell Script e 7 08-27-2006 10:50
lista apenas ler ficheiros utilizando encontrar vivekshankar UNIX para Dummies Perguntas & Respostas 1 05-26-2005 05:47

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 11-18-2008
pinkgladiator pinkgladiator is offline
Usuário
  
 

Join Date: Oct 2008
Lugares: 17
lidas a partir de um arquivo a uma lista

Olá,

Eu tenho um arquivo de conteúdo uma lista de e-mail, e cada um é separado por novas linhas. Quero ler o primeiro endereço de e-mail em TO: arquivados eo restante em uma lista e vai para cc campo. Pretendo usar mailx para enviar o e-mail. Eu inseridos os endereços de email em um array, mas o que posso fazer para transformar a matriz em uma lista, para que eu possa transmiti-la ao comando mailx? O script está funcionando, mas que imprime uma lista de cc por um. Isso não vai funcionar para mailx desde que eu preciso de todos eles em uma lista. Obrigado!

# endereço de e-mail lido linha por linha, a primeira linha sempre vai ao campo Para
fname \u003d "/ home / ... / emailFile.txt"
cc [100] \u003d "" # lista de cc receipients

exec <$ fname
valor \u003d 0

enquanto lê linha
fazer
valor \u003d `expr $ valor + 1»;
if [$ valor-eq 1]
então
headit \u003d $ linha
echo "headit e-mail é: $ headit" # receipient endereço de email, sempre a primeira linha do arquivo
diferente
cc [$ valor] \u003d $ linha
echo "contactos e-mail é: $ (cc [$ valor])"
fi
feito

mailx # comando para enviar e-mail com um texto corporal, penhora, cc, bcc, endereço e responder,
echo "teste" | gato - body.txt | mailx-um attachment.html-b "bcc@mail.com"-c "$ cc"-s "teste"-r "reply@mail.com" "$ headit"
  #2 (permalink)  
Old 11-18-2008
zaxxon's Avatar
zaxxon zaxxon is offline Forum Staff  
Moderador
  
 

Join Date: Sep 2007
Local: Alemanha
Posts: 2.311
Use [code] e [/ code] tags quando destacamento toras, código etc, ty.


Código:
root@isau02:/data/tmp/testfeld> cat infile
a@some.net
b@some.net
c@some.net
d@some.net
root@isau02:/data/tmp/testfeld> V_TO=`head -1 infile`
root@isau02:/data/tmp/testfeld> echo $V_TO
a@some.net
root@isau02:/data/tmp/testfeld> V_CC=`awk 'NR > 1 {print}' infile`
root@isau02:/data/tmp/testfeld> echo $V_CC
b@some.net c@some.net d@some.net

Ao utilizar as variáveis, talvez use "$ (VAR)" para se certificar que você tem qualquer problema.
  #3 (permalink)  
Old 11-18-2008
Christoph Spohr Christoph Spohr is offline
Usuário
  
 

Join Date: Sep 2008
Lugares: 205
Oi,

para ler todos os e-mails em um array:


Código:
email=( $(cat file) )


Código:
TO=$email[1]

para converter a matriz para uma lista:


Código:
CC=$(for i in {2..${#email[@]}}; do printf "%s " ${email[$i]}; done)

Que itera sobre o array começando na posição 2 para o comprimento da matriz, o que imprime o atual matriz seguido por um espaço, mas nenhuma linha. O resultado é passado para a variável CC. Agora você tem a TO e no $ $ a CC em CC.

HTH

Chris
  #4 (permalink)  
Old 11-18-2008
Christoph Spohr Christoph Spohr is offline
Usuário
  
 

Join Date: Sep 2008
Lugares: 205
Oi,

há um pequeno erro de lá. Tem que ser:

cc \u003d $ (para i em (2 ..${# email [@]}}; fazer printf "% s," $ (email [$ i]); feito

A vírgula faltava como você precisará de uma lista separada por vírgulas de repicipients.

Eu não uso, mas mailx mutt. A linha faz o seguinte truque para mim:

echo teste | mutt-s teste-c "$ cc" - $ a

HTH Chris
  #5 (permalink)  
Old 11-18-2008
pinkgladiator pinkgladiator is offline
Usuário
  
 

Join Date: Oct 2008
Lugares: 17
Obrigado por todos os lugares. Eu realmente aprecio isso. Chris do código não tem funcionado para mim, porém, esta é a saída:

someone@mail.com[1]
2 .. (2): erro de sintaxe: operando esperado (sinal de erro é "2 .. (2)") # talvez porque eu só tenho dois e-mail no arquivo. É possível que o conteúdo do arquivo só 1 ou 2 endereços de e-mail.

Zaxxon's código funcionou para mim. Obrigado novamente por todas as entradas.

Última edição por pinkgladiator; em 11/18/2008 01:35..
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 09:21.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0