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 > 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
Remova os espaços após um delimitador kiran_418 UNIX para Dummies Perguntas & Respostas 1 04-29-2008 02:19
Como remover os espaços mahek_bedi UNIX para Dummies Perguntas & Respostas 2 08-10-2007 07:21
Removendo líder e os espaços de dados entre as tags em XML. jhmr7 UNIX para Dummies Perguntas & Respostas 2 05-18-2005 10:27
Descarne líder e os espaços em uma única variável com espaços incorporados shell jerardfjay Programação Shell Script e 6 03-07-2005 02:24
Adicionando os espaços para um arquivo 222001459 UNIX para Dummies Perguntas & Respostas 1 11-04-2004 03:23

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-28-2003
sleepster sleepster is offline
Usuário
  
 

Join Date: Sep 2003
Posts: 16
Liderar e os espaços

Oi,

como eu remover liderança e os espaços a partir de uma linha? os espaços podem ser atrás ou na frente de qualquer campo ou linha

exemplo de uma linha na entrada de dados:

Amy Reds, 100, / bin / sh

a forma de obtê-lo a ser: Amy Ler, 100, / bin / sh

Eu vi alguma coisa sobre isto nas páginas man para Awk mas eu realmente não entendo o que ele estava falando .. alguém poderia ajudar?

obrigado
  #2 (permalink)  
Old 10-28-2003
TioTony's Avatar
TioTony TioTony is offline Forum Advisor  
Bit Pusher
  
 

Join Date: Oct 2001
Localização: sul da Califórnia
Lugares: 332
Você está usando um script ou vi para fazer isto?

Para que um shell script que você poderia usar sed como este:

echo "Amy Reds, 100, / bin / sh" | sed 's / / / g'

Em vi é muito semelhante

:% s / / / g

Isto pressupõe que você quer fazer isso para cada linha do arquivo e também assume que você tem espaços, tabulações ou outros não branco.

Se você puder dar mais pormenores, estou certo que você irá obter uma resposta específica.
  #3 (permalink)  
Old 10-29-2003
sleepster sleepster is offline
Usuário
  
 

Join Date: Sep 2003
Posts: 16
obrigado pela sua resposta

Estou usando vi para fazer isso .. Tentei sed e não me dão a saída i want .. Amy Reds, 100, / bin / sh -> me daria uma saída sem espaços no meio

Eu quero ir para a saída como: -> Amy Reds, 100, / bin / sh
existe um espaço entre o primeiro nome eo sobrenome

Olhei algumas páginas da web e Awk parece ser a resposta, porém eu não sei como usá-lo.

obrigado.
  #4 (permalink)  
Old 10-29-2003
Ygor's Avatar
Ygor Ygor is online now Forum Staff  
Moderador
  
 

Join Date: Oct 2003
Localização: -31.96,115.84
Mensagens: 1.408
Parece que você só deseja remover apenas os espaços para cada lado de uma vírgula. Experimente ...
Código:
echo "Amy Reds , 100 , /bin/sh" | sed 's/[ ]*,[ ]*/,/g'
  #5 (permalink)  
Old 10-29-2003
sleepster sleepster is offline
Usuário
  
 

Join Date: Sep 2003
Posts: 16
sim Ygor, que quase não se

Poderia explicar o que os símbolos [] * e dizer aqui?

também o que se há espaços para a frente e para trás da linha?

"Amy Reds, 100, / bin / sh"

obrigado
  #6 (permalink)  
Old 10-29-2003
Simerian Simerian is offline
Usuário
  
 

Join Date: Oct 2003
Localização: Reino Unido
Lugares: 37
Expressões Regulares

O modelo representa uma expressão regular

[] Denota um conjunto de caracteres entre colchetes na fronteira, neste caso, um único espaço.

Os seguintes * indica "0 ou mais ocorrências".

Assim, o padrão, [] * indica um padrão corresponde a 0 ou mais espaços. Locais para cada lado de uma vírgula que produzem o efeito de uma vírgula mathcing rodeado por espaços e, em seguida, converter a seqüência corresponder a uma única vírgula.

Você também pode verificar-se sobre o uso de [: space:], que corresponde essencialmente qualquer branco (ou seja, as abas também).
  #7 (permalink)  
Old 10-29-2003
Ygor's Avatar
Ygor Ygor is online now Forum Staff  
Moderador
  
 

Join Date: Oct 2003
Localização: -31.96,115.84
Mensagens: 1.408
Para remover espaços cada lado de uma vírgula e conduzindo / os espaços. Experimente ...
Código:
sed -e 's/[ ]*,[ ]*/,/g' -e 's/^[ ]*//' -e 's/[ ]*$//' file1
Onde ...

[] * \u003d Qualquer número de espaços
^ \u003d Início de linha
$ \u003d Fim de linha

regexp homem para obter mais detalhes.

Você também pode usar awk, se preferir ...
Código:
awk 'BEGIN{FS=OFS=","}{for(i=1;i<=NF;i++)gsub("(^[ ]*)|([ ]*$)","",$i)};1' file1
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 04:26.


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