The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
ksh - lire le fichier avec des espaces momi De programmation et de script Shell 2 03-17-2008 03:02 PM
Dénudage les espaces à droite sur le nom Marcia P UNIX pour les nuls Questions et réponses 2 02-28-2006 10:32 PM
Suppression de la direction et les espaces de données entre les balises en xml. jhmr7 UNIX pour les nuls Questions et réponses 2 05-18-2005 11:27 AM
Strip leader et les espaces que dans une variable de shell avec espaces jerardfjay De programmation et de script Shell 6 03-07-2005 02:24 PM
Diriger et les espaces sleepster De programmation et de script Shell 7 10-29-2003 11:48 PM

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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 03-15-2008
lijojoseph lijojoseph is offline
Registered User
  
 

Join Date: Mar 2008
Messages: 6
supprimer les espaces à partir d'une ligne

Salut les amis

J'ai besoin d'aide,

J'ai un fichier qui ressemble à ce qui suit

TEMP 014637065 014637065 517502 517502 RTE
517502 517502 RTE
AWATER_TEST 12325 23563 588323 2323 5656 32385 23235635
ANOTHER_TEST 12 5433 FTHH 5653 833
TEST 123 123 3235 5353 353 53 35 353 535 3
YTERS GJK JKLS

où jamais, il ya un espace en ligne (ici il ya un espace au début de la ligne 2 et 6 mai, qui n'est pas visible dans le fil), j'ai besoin de la supprimer et d'ajouter à la ligne précédente. Cela signifie que je veux un fichier de sortie qui ressemble à
TEMP 014637065 014637065 517502 517502 RTE RTE 517502 517502
AWATER_TEST 12325 23563 588323 2323 5656 32385 23235635
ANOTHER_TEST 12 5433 FTHH 5653 833
TEST 123 123 3235 5353 353 53 35 353 535 3 YTERS GJK JKLS
  #2 (permalink)  
Old 03-15-2008
Franklin52 Franklin52 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4308
Code:
awk '/^ /{print p $0; p=""; next}
p !~ /^ / && p {print p}
{p=$0}
END{if(!/^ /) {print}}
' file
Observe

Dernière édition par Franklin52; au 03.15.2008 07:34 AM.. Motif: modifation code
  #3 (permalink)  
Old 03-15-2008
lijojoseph lijojoseph is offline
Registered User
  
 

Join Date: Mar 2008
Messages: 6
Citation:
Posté par Franklin52 View Post
Code:
awk '/^ /{print p $0; p=""; next}
p !~ /^ / && p {print p}
{p=$0}
END{if(!/^ /) {print}}
' file
Observe
Bonjour Franklin,
J'ai essayé avec l'option ci-dessus, il est en erreur de syntaxe pour la deuxième ligne
les messages d'erreur sont
*******
awk: syntax error, près de la ligne 1
awk: foin à proximité de la ligne 1
*******
j'ai essayé aussi avec awk '/ ^ / p (print $ 0;) (prochain p \u003d $ 0) END (print)', mais ici, il ne prendra pas en considération les lignes sans un espace

pls help

Dernière édition par lijojoseph; au 03.15.2008 09:12 AM..
  #4 (permalink)  
Old 03-15-2008
Franklin52 Franklin52 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4308
Utilisez nawk / ou usr/xpg4/bin/awk sur Solaris

Observe
  #5 (permalink)  
Old 03-15-2008
lijojoseph lijojoseph is offline
Registered User
  
 

Join Date: Mar 2008
Messages: 6
Smile

Frank,
thanks a lot, il fonctionne parfaitement avec nawk.

ici aussi j'ai un petit problème
si il ya des grands espaces en 2 lignes consécutives, il ne considère pas la seconde ..
qui est
*** Fichier d'entrée
TEMP 014637065 014637065 517502 517502 RTE
517502 517502 RTE
226
AWATER_TEST 12325 23563 588323 2323 5656 32385 23235635
ANOTHER_TEST 12 5433 FTHH 5653 833
TEST 123 123 3235 5353 353 53 35 353 535 3
YTERS GJK JKLS

si les espaces sont là dans les lignes 2 et 3, puis la sortie devrait ressembler à
TEMP 014637065 014637065 517502 517502 RTE 517502 517502 RTE 2634
AWATER_TEST 12325 23563 588323 2323 5656 32385 23235635
ANOTHER_TEST 12 5433 FTHH 5653 833
TEST 123 123 3235 5353 353 53 35 353 535 3
YTERS GJK JKLS

Pouvez-vous pls help?

Il peut également que vous venez de me le awk explane code si vous en avez le temps
Encore une fois merci pour l'aide youe
  #6 (permalink)  
Old 03-15-2008
Franklin52 Franklin52 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4308
Essayez ceci:

Code:
awk '
/^ /{p=p $0;next}
p{print p}
{p=$0}
END{print p}
' file
Explication du code:

/ ^ / (P $ p \u003d 0;) prochaine # Concatène les lignes qui commencent par un espace avec la ligne précédente et de lire la ligne suivante

Les prochaines commandes effet les autres lignes:

p) p (print Print # la ligne précédente, s'il est
p \u003d $ (0) # Set p
END (print p) # Il n'ya plus de lignes, d'imprimer la ligne précédente (s)

Utilisez nawk / ou usr/xpg4/bin/awk sur Solaris

Observe
Closed Thread

Bookmarks

Tags
solaris

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 02:20 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0