![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| UNIX & avançada para usuários experientes Especialista-a-Expert. Saiba avançado UNIX, comandos UNIX, Linux, Sistemas Operativos, Administração de Sistemas, Programação, Shell, shell scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD. |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| ftp controlo | ust | Programação Shell Script e | 0 | 07-10-2008 03:30 |
| Ksh Verificar se string tem 2 caracteres e não contém dígitos? | developncode | UNIX para Dummies Perguntas & Respostas | 1 | 04-08-2008 04:19 |
| EOF verificar a seguir | ramkrix | Alto Nível de programação | 10 | 03-11-2008 01:43 |
| Verificado por PXE | maestro @ Altiris | Sun Solaris | 5 | 05-25-2004 01:06 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Verificado para determinados caracteres
Alguém poderia ajudar com a seguinte solicitação .. Eu tenho um arquivo no seguinte formato:
ID .... VALOR A001 .... 100 B002 .... 200 A004 .... 300 B006 .... 100 A997 .... 200 B776 .... 400 É no formato de uma coluna, mas gostaria de verificar que o campo ID sempre começa com A ou B e com carácter esta é a minha lógica até agora: Se Caracteres não é igual a 1 A ou B então exibir mensagem de erro diferente continuar a fazer o que quiser fi Não tenho certeza quanto ao carácter chech que 1 de cada linha não é igual a A ou B habe tentou seguir sem nenhum Joi Se [! grep '^ A' $ file | |! grep '^ B' $ file] então print "erro" diferente print "funciona" fi mas o trabalho acima não creio que a lógica que o meu entendimento não unix grande, por favor ajudar. |
|
||||
|
BTW, você pode também ignorar colocar isto em um script.
Código:
awk '/(^A)|(^B)/ {num++} END {if(num > 0);printf("%d instances of A,B exist\n", num);}' column
|
|
||||
|
Ok, apenas a dizer-me quantas vezes A ou B, em que existe. I exigir-lhe que envie uma mensagem de erro se existir um C ou outra multa para continuar seu processamento arquivo .. Espero que faça mais sentido
|
|
||||
|
O arquivo de entrada:
Código:
$ cat ttt ID .... VALUE ------------- A001 .... 100 C003 .... 800 B002 .... 200 corrupt data A004 .... 300 C003 .... 800 foo .... bar Código:
#!/bin/ksh
INPUT=ttt
{ while read LINE
do
echo $LINE |egrep "^A|^B" > /dev/null 2>&1
if [ $? -eq 0 ]
then
echo "Processing $LINE"
else
echo "Skipping $LINE"
fi
done } < $INPUT
Código:
$ ./ttt.ksh Skipping ID .... VALUE Skipping ------------- Processing A001 .... 100 Skipping C003 .... 800 Processing B002 .... 200 Skipping corrupt Skipping data Processing A004 .... 300 Skipping C003 .... 800 Skipping foo .... bar Deixe-nos saber se você precisar de alguma coisa no script explicou. |
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|