Go Back   O UNIX e Linux Forum > Top Fóruns > UNIX para Dummies Perguntas & Respostas
.
site google



UNIX para Dummies Perguntas & Respostas Se não tiver certeza de onde se pode postar uma pergunta Unix ou Linux, postá-lo aqui. Todos os UNIX e Linux novatos bem vindos!

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 10-23-2008
Usuário
 

Join Date: Oct 2008
Posts: 4
Record dividir com Awk

Oi tudo!

Preciso da sua ajuda o mais rápido possível.

O meu ficheiro de entrada como esta:

bac tính (薄情) 1.薄情な.2.夫婦或いは男女の不貞を指す.
Bach (百,迫) 1.100ドソ. tr Ambacともいう. 2.柏(カヽしわ)・3.圧迫する.4.差し迫った,

Minha proposta é tomar o valor no firt braquete. Eu usei o comando como:
... if (index ($ 3 ,"(")\u003d\u003d 1) $ 3 \u003d substr ($ 3,2, index ($ 3 ,")")- 1);
else if (index ($ 3 ,"(")\u003d\u003d 1) $ 3 \u003d substr ($ 3,2, index ($ 3, ") 1." -3);
eo meu resultado com a primeira linha, eu levo o valor薄情.
mas a segunda linha, o valor está errado. Porque ele teve百,迫) 1.100ドソ. tr Ambacともいう. 2.柏(カヽしわ.
mas eu quero tomar a百,迫.

Então o que posso fazer?
Links Patrocinados
  #2 (permalink)  
Old 10-23-2008
radoulov's Avatar
--
 

Join Date: Jan 2007
Localização: Варна, България / Milano, Italia
Mensagens: 3.220
Tente este:


Código:
awk -F'[)(]' '{print $2}' infile

Nota:

Transferido para o Q & A.
Para o OP: por favor não postar em threads independentes antigo, abra um novo uma vez.
Obrigado!

Última edição por radoulov; em 10/23/2008 04:58..
  #3 (permalink)  
Old 10-23-2008
Usuário
 

Join Date: Oct 2008
Posts: 4
Thanks you so much!

Mas eu não sei o que isso significa de funtion-F
  #4 (permalink)  
Old 10-23-2008
Moderador
 

Join Date: Feb 2007
Localização: The Netherlands
Mensagens: 4.962
Tente isto, tenho usado ( ou ) como fieldseparators:


Código:
awk 'BEGIN{FS="\(|\)"} {print $2}' file

Atenciosamente
  #5 (permalink)  
Old 10-23-2008
Usuário
 

Join Date: Oct 2008
Posts: 4
Obrigado!

Antes, eu faço assim:
BEGIN (
FS \u003d "\ t"; RS \u003d "\ n";
)
Porque agora eu quero tomar as palavras durante (), e US $ 3 significa que o valor que irá tomar.
Eu escrevo assim
if (index ($ 3 ,"(")\u003d\u003d 0 & & index ($ 3 ,"··)\u003d\u003d 0) 3 $ \u003d "";
else if (index ($ 3 ,"(")\u003d\u003d 1) $ 3 \u003d substr ($ 3,2, index ($ 3 ,"··)- 2);

Meu resultado terá 2 coluna, 1 é
Bach
ea segunda coluna é百,迫
mas agora tenho problema quando as linhas têm 2 () como este
Bach (百,迫) 1.100ドソ. tr Ambacともいう. 2.柏(カヽしわ)

Após o Bach eu usar separador código (botão) e antes de Bach, também utilizando o separador código.

E o meu resultado é
Bach百,迫) 1.100ドソ. tr Ambacともいう. 2.柏(カヽしわ

Então você poderia me ajudar a corrigir o meu erro?
  #6 (permalink)  
Old 10-23-2008
Moderador
 

Join Date: Feb 2007
Localização: The Netherlands
Mensagens: 4.962
O problema é que o arquivo não for bem estruturado, você pode fazer:


Código:
awk -F'[)(]' '{print $1, $2}' infile

Atenciosamente
  #7 (permalink)  
Old 10-23-2008
radoulov's Avatar
--
 

Join Date: Jan 2007
Localização: Варна, България / Milano, Italia
Mensagens: 3.220
Citação:
Originally Posted by maixu134 View Post
Antes, eu faço assim:
BEGIN (
FS \u003d "\ t"; RS \u003d "\ n";
)
Porque agora eu quero tomar as palavras durante (), e US $ 3 significa que o valor que irá tomar.
Eu escrevo assim
if (index ($ 3 ,"(")\u003d\u003d 0 & & index ($ 3 ,"··)\u003d\u003d 0) 3 $ \u003d "";
else if (index ($ 3 ,"(")\u003d\u003d 1) $ 3 \u003d substr ($ 3,2, index ($ 3 ,"··)- 2);

Meu resultado terá 2 coluna, 1 é
Bach
ea segunda coluna é百,迫
mas agora tenho problema quando as linhas têm 2 () como este
Bach (百,迫) 1.100ドソ. tr Ambacともいう. 2.柏(カヽしわ)

Após o Bach eu usar separador código (botão) e antes de Bach, também utilizando o separador código.

E o meu resultado é
Bach百,迫) 1.100ドソ. tr Ambacともいう. 2.柏(カヽしわ

Então você poderia me ajudar a corrigir o meu erro?
OK,
poderia postar a saída do comando abaixo e explique o que há de errado com ele?
Basta executá-la no seu terminal:


Código:
awk -F'[)(]' '{print $1, $2}' name_of_your_input_file


Última edição por radoulov; em 10/23/2008 08:53..
Links Patrocinados
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 Desligado


Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Imprimir registo completo e substring em que o registro ukatru UNIX & avançada para usuários experientes 1 09-19-2008 07:32
como ler registro por registro a partir de um arquivo no unix raoscb UNIX para Dummies Perguntas & Respostas 1 05-16-2008 07:30
Dividir um arquivo baseado em pecado gravar um outro arquivo er_ashu UNIX para Dummies Perguntas & Respostas 7 05-16-2008 12:06
Script para procurar um registro incorreto em um arquivo, em seguida, colocar o registro no arquivo incorreto shilendrajadon Programação Shell Script e 2 12-28-2007 10:02
rachar um registro e adicionando um recorde para um arquivo rsolap Programação Shell Script e 1 08-13-2007 02:58



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


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 Brasil Content Copyright © 1993-2010. Todos os direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0