The UNIX and Linux Forums  
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

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



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!

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Parsing string usando delimitador específico ataviar Programação Shell Script e 8 09-22-2008 01:46
string substituição em uma seqüência de caracteres raoscb UNIX para Dummies Perguntas & Respostas 3 07-08-2008 06:00
Adicionando uma seqüência string para um arquivo MrPeabody Programação Shell Script e 5 07-21-2006 03:50
Procurando por uma seqüência específica de um argumnet dinplant Programação Shell Script e 1 03-11-2002 03:28
Pesquisar todos os ficheiros específicos para seqüência sureshy UNIX para Dummies Perguntas & Respostas 4 03-06-2002 12:28

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 10-20-2008
Lisas LisaS is offline
Usuário
  
 

Join Date: Mar 2005
Lugares: 59
cmd seqüência de encontrar e recortar uma seqüência específica

Um programador de minas tem esse requisito - Eu não poderia dizer-lhe como fazê-lo rapidamente com UNIX comandos ou um script de modo rápido ela está escrevendo um programa rápido de fazê-lo -, mas que tenho a minha curiosidade e até pensei que eu ia perguntar aqui para conselho.

Em um arquivo de texto, existem alguns registros (cerca de metade delas) que têm uma determinada seqüência, diz "ABC", seguido de um dígito número 15, sempre pelo menos 2 zeros à esquerda. Nas linhas que tem isso, ele aparecerá duas vezes, identicamente.
Eu quero cortar a essência destes 18 chars em um arquivo do seu próprio. Mas, eles não estão em uma posição fixa coluna dentro do ficheiro.

Logicamente, a tarefa é a seguinte:
a) encontrar as linhas com ABC00
b) obter a posição de que um primeiro
c) corte começando nessa posição por 18 caracteres e escrever para um novo arquivo.

exemplo dados:
ab cdefgABC000000000012345ABC000000000012345sadlfk
abcde fgABC000000000012346ABC000000000012346sadlfk
abc defgghi jklmn1349d5sadlfk
abcdef sldkfdgABC000000000056789ABC000000000056789abcdlkdfj134239d


e assim por diante.

Saída desejada
ABC00000000012345
ABC00000000012346
ABC00000000056789

Obrigado por ter um olhar.
Lisa
  #2 (permalink)  
Old 10-20-2008
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
Modérateur
  
 

Join Data: dezembro 2007
Localização: Home, de 17 de tempo de campeão mundial de Boston Celtics
Posts: 1.311
Wink Uma abordagem

Lisa,
Existem provavelmente muitos, mas aqui está uma abordagem --

Código:
> sed "s/ABC[0-9][0-9]/~+&/" file220 | tr "~" "\n" | grep "+" | cut -c2-19
ABC000000000012345
ABC000000000012346
ABC000000000056789
  #3 (permalink)  
Old 10-20-2008
Lisas LisaS is offline
Usuário
  
 

Join Date: Mar 2005
Lugares: 59
uau! que é destro - e ele trabalhou em meus dados riacho tão 1000s de agradecimento. Agora, o dilema ético, posso apenas dar a ela o dono da obra, como se eu fiz isso ou eu 'gente até que eu pedi ajuda.

Lisa
  #4 (permalink)  
Old 10-20-2008
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
Modérateur
  
 

Join Data: dezembro 2007
Localização: Home, de 17 de tempo de campeão mundial de Boston Celtics
Posts: 1.311
Wink sob o pressuposto de que nenhuma programação é realmente único e nunca criaram ...

Você encontrou uma solução e verificou se funciona.

Mais todos os problemas já foram resolvidos e amadurecido e, por isso, realmente não são "novas" respostas. Ha ha

Voltar para o problema inicial, o uso criativo da sed para colocar caracteres extras e depois tr para convertê-los para que um grep e corte pode extrair deles - é um processo útil para puxar para além de registo de dados.

Deixe-o pensar que você era o génio.
  #5 (permalink)  
Old 10-21-2008
vimes vimes is offline
Usuário
  
 

Join Date: Oct 2008
Lugares: 46
Inevitavelmente, uma perl aproximar

Código:
perl -ne '/(ABC00\d{13})/ && print "$1\n"' list.txt
Closed Thread

Marcadores

Tags
comandos unix

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 10:18.


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