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
expressão regular [^] iengca Programação Shell Script e 9 06-18-2008 10:45
Precisa de uma expressão regular tony3101 Programação Shell Script e 4 06-05-2008 04:13
expressão regular e awk nickg UNIX para Dummies Perguntas & Respostas 2 08-16-2007 06:23
Expressões Regulares edog UNIX para Dummies Perguntas & Respostas 5 12-04-2003 02:58
Expressão Regular + Aritmetical Expressão Z0mby Programação Shell Script e 2 05-21-2002 11:59

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 05-24-2007
ynixon ynixon is offline
Usuário
  
 

Join Date: Mar 2007
Lugares: 57
expressão regular em toda a algumas linhas

Estou tentando usar expressões regulares para identificar apenas os comandos que não tem a palavra "Tablespaces" dentro dele. um comando começa com "criar mesa" e termina com, (vírgula)

exemplo arquivo:
Código:
create table first tablespace ;
create table second
(
  BBL_CUSTOMER_NAME      VARCHAR2(32),
a tablespace af
);
create table third
(
  BBL_CUSTOMER_NAME      VARCHAR2(32),
);
create table 
forth
(
  BBL_CUSTOMER_NAME      VARCHAR2(32) );
o jogo deveria ser:
Código:
create table third
(
  BBL_CUSTOMER_NAME      VARCHAR2(32),
);
create table 
forth
(
  BBL_CUSTOMER_NAME      VARCHAR2(32) );
HELP ME

Última edição por ynixon; em 05/24/2007 12:02..
  #2 (permalink)  
Old 05-24-2007
aigles's Avatar
aigles aigles is offline Forum Advisor  
Usuário
  
 

Join Date: Apr 2004
Location: Bordeaux, França
Mensagens: 1.423
Você pode tentar algo assim:
Código:
awk '
   BEGIN { 
      RS=ORS=";\n"
   }
   /create/ && ! /tablespace/ {
      sub(/^\n*/, "");
      print
   }
    ' inputfile
Jean-Pierre.
  #3 (permalink)  
Old 05-24-2007
anbu23 anbu23 is offline Forum Advisor  
Usuário
  
 

Join Date: Mar 2006
Local: Bangalore, Índia
Mensagens: 1.398
Código:
awk -v RS=";\n" -v ORS=";\n" ' !/tablespace/ ' filename
  #4 (permalink)  
Old 05-24-2007
ynixon ynixon is offline
Usuário
  
 

Join Date: Mar 2007
Lugares: 57
Eu gostaria de tentar usar apenas grep
  #5 (permalink)  
Old 05-24-2007
drl's Avatar
DRL drl is offline Forum Advisor  
Usuário
  
 

Join Date: Apr 2007
Localização: Saint Paul, MN E.U.A. / BSD, CentOS, Debian, Mac OS X, Solaris
Lugares: 712
Oi.

Penso que grep não atravessem newlines, de modo que você precisará colocar seus comandos cada um em uma única linha. Existe uma nota na minha página sobre o homem usando grep perl expressões regulares, mas que é indocumentados. O awk e perl scripts pode fazer uso de settable gravar fronteiras.

Aqui está um perl rapidinha:
Código:
#!/bin/sh

# @(#) s1       Demonstrate perl quickie for unmatched string across lines.

FILE=${1-data1}

perl -wn -e 'BEGIN{$/=";"} print if not /tablespace/' $FILE

exit 0
E esta executando em sua amostra contida no arquivo Data1:
Código:
% ./s1

create table third
(
  BBL_CUSTOMER_NAME      VARCHAR2(32),
);
create table
forth
(
  BBL_CUSTOMER_NAME      VARCHAR2(32) );
Muitas felicidades ... cheers, DRL
  #6 (permalink)  
Old 05-24-2007
ynixon ynixon is offline
Usuário
  
 

Join Date: Mar 2007
Lugares: 57
Citação:
Originally Posted by DRL
Oi.

Penso que grep não atravessem newlines, de modo que você precisará colocar seus comandos cada um em uma única linha. Existe uma nota na minha página sobre o homem usando grep perl expressões regulares, mas que é indocumentados. O awk e perl scripts pode fazer uso de settable gravar fronteiras.

Aqui está um perl rapidinha:
Código:
#!/bin/sh

# @(#) s1       Demonstrate perl quickie for unmatched string across lines.

FILE=${1-data1}

perl -wn -e 'BEGIN{$/=";"} print if not /tablespace/' $FILE

exit 0
E esta executando em sua amostra contida no arquivo Data1:
Código:
% ./s1

create table third
(
  BBL_CUSTOMER_NAME      VARCHAR2(32),
);
create table
forth
(
  BBL_CUSTOMER_NAME      VARCHAR2(32) );
Muitas felicidades ... cheers, DRL
limpo e simples
  #7 (permalink)  
Old 05-24-2007
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderador
  
 

Join Date: Feb 2005
Localização: Boston, MA
Mensagens: 5.122
Citação:
Originally Posted by ynixon
Eu gostaria de tentar usar apenas grep
porque é isso?
Closed Thread

Marcadores

Tags
regex, expressões regulares

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:55.


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